如何使用matlab在中心像素的梯度方向下获取局部区域的像素值?
我已经发现函数imgradient()很好,但是如何在这个角度下将角度转换为线?
答案 0 :(得分:1)
所以你想知道如何定义一个点(x0,y0)
和一个角度theta
的线?也许是这样的事情:
% T determines the length of the line. I am using a step size
% of 0.5 since it should get each pixel. You could always go finer
% and let the call to unique get rid of the duplicates.
t = 0:0.5:T;
p = unique( round( [x0+t(:)*cos(theta), y0+t(:)*sin(theta) ] ), 'rows' );
上面的 p
将是一个Nx2像素坐标数组,它位于从(x0,y0)
开始并延伸出角度{{1}的线下(技术上在1/2像素内) }}