两条相交线之间的像素

ano*_*non 4 math matlab image-processing computational-geometry

我需要找到2行交叉点之间的像素值.下图显示了我想要的点,即棕色区域.

这4个坐标可以改变,不一定是角点.

在此输入图像描述

获取像素值的最快方法是什么?有没有任何功能可以给我必要的面具.

And*_*ein 6

您应该计算每个点,无论它是在线上还是在线以下.如果该行以其等式形式给出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)