Как построить карту ориентации поля? У меня есть градиенты. Переполнение стека OpenCV

Я использовал фильтр Scharr, и у меня есть x и y градиенты отсюда. Могу ли я узнать, как я могу построить карту ориентации отсюда?
Вот изображение моего результата фильтра Шарра. Это изображение отпечатка пальца.

И это код, который я использовал.

Mat src,grad;
Mat grad_x,grad_y;
Mat abs_grad_x,abs_grad_y;

int scale=1;
int delta=0;
int ddepth=CV_16S;
int c;
src=cv::imread("remove_noise.bmp",CV_LOAD_IMAGE_UNCHANGED);

Scharr(src,grad_x,ddepth,1,0,scale,delta,BORDER_DEFAULT);
convertScaleAbs(grad_x,abs_grad_x);
Scharr( src, grad_y, ddepth, 0, 1, scale, delta, BORDER_DEFAULT );
convertScaleAbs(grad_y,abs_grad_y);

addWeighted(abs_grad_x,0.5,abs_grad_y,0.5,0,grad);
cv::imwrite("SobelScharr.bmp",grad);

0

Решение

Я реализовал ориентацию гребня несколько месяцев назад, используя matlab. Я использовал график скорости для построения гребней. У меня нет знаний об opencv. Полагаю, это может помочь вам. Вот мой код.

% Orientation vectors
vec_u = len/2*cos(p_theta);
vec_u = filter2(smooth,vec_u);
vec_v = len/2*sin(p_theta);
vec_v = filter2(smooth,vec_v);

quiver(x,y,vec_u,vec_v,0,'.','linewidth',1.2, 'color','k');
%     imshow('FillValues',255);
axis equal,axis ij,axis off; hold off;

Это также может помочь вам ..

www.mathworks.com/help/matlab/ref/quiver.html

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]