在中心像素的渐变方向下获取局部区域中的像素值

时间:2014-12-06 22:54:10

标签: matlab image-processing

如何使用matlab在中心像素的梯度方向下获取局部区域的像素值?

我已经发现函数imgradient()很好,但是如何在这个角度下将角度转换为线?

1 个答案:

答案 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像素内) }}