我是图像处理和开发新手。我有一个图像的像素坐标。通过连接每个坐标可以得到一个三角形。我想提取给定坐标像素内的像素(三角形内的像素)提取给定坐标内的像素
坐标如下。
1(x,y) -> (146 , 548)
2(x,y) -> (155, 548)
3(x,y) -> (149.6 , 558.1)
我如何拍摄以上坐标入站的像素。任何帮助表示赞赏。谢谢。
我是图像处理和开发新手。我有一个图像的像素坐标。通过连接每个坐标可以得到一个三角形。我想提取给定坐标像素内的像素(三角形内的像素)提取给定坐标内的像素
坐标如下。
1(x,y) -> (146 , 548)
2(x,y) -> (155, 548)
3(x,y) -> (149.6 , 558.1)
我如何拍摄以上坐标入站的像素。任何帮助表示赞赏。谢谢。
您应该在图像上敷面膜。
示例代码:
首先,你应该载入图片:
//load default image
Mat image = cv::imread("/home/fabio/code/lena.jpg", cv::IMREAD_GRAYSCALE);
然后创建你的形象口罩和应用三角点到面罩。
//mask image definition
cv::Mat mask = cv::Mat::zeros(image.size(), image.type());
//triangle definition (example points)
vector<Point> points;
points.push_back(Point(100,70));
points.push_back(Point(60,150));
points.push_back(Point(190,120));
//apply triangle to mask
fillConvexPoly(mask, points, Scalar(255));
之后,你的面具看起来就像这样:
最后创建应用掩码原始图像最终图像:
//final image definition
cv::Mat finalImage = cv::Mat::zeros(image.size(), image.type());
image.copyTo(finalImage, mask);
结果:
这是你在找什么?
yap这是正确的。谢谢你进一步我怎么可以只带三角形没有背景。 – Alan
有一个线索在谈论这个问题,给出的解决方案很容易适用于您的案例,只是替换所提供示例中使用的形状。
首先使用drawContours方法绘制三点轮廓,然后使用该图像作为蒙版来提取像素。 – hariprasad
@hariprasad你能解释一下吗? – Alan