ano*_*non 4 math matlab image-processing computational-geometry
我需要找到2行交叉点之间的像素值.下图显示了我想要的点,即棕色区域.
这4个坐标可以改变,不一定是角点.
获取像素值的最快方法是什么?有没有任何功能可以给我必要的面具.
您应该计算每个点,无论它是在线上还是在线以下.如果该行以其等式形式给出Ax+By+C
,那么就像根据您的观点计算该表达式的符号一样简单(x,y)
.如果您的行以任何其他形式给出,您应该首先计算上面的表格.(见这里和这里)
我们L1
是集中的第一线以下的所有点,并L2
设定第二线以下的所有点.然后,你的设置是X = Xor(L1,L2)
[ ] Xor [
]
等于:
这是一个Matlab代码,根据我所描述的解决方案,解决了角点的问题.您可以在代码中调整线方程.
function CreateMask()
rows = 100;
cols = 200;
[X,Y] = ndgrid(1:cols,1:rows);
belowFirstLine = X*(1/cols) + Y*(-1/rows) + 0 < 0;
belowSecondLine = X*(-1/cols) + Y*(-1/rows) + 1 < 0;
figure;imshow( transpose(xor(belowSecondLine,belowFirstLine)));
end
Run Code Online (Sandbox Code Playgroud)