gpt4 book ai didi

android - OpenCV 在轮廓边界内获取黑色像素

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:20 25 4
gpt4 key购买 nike

我目前正在尝试检索存在于轮廓边界内的所有黑色像素。我对轮廓边界不感兴趣,而是对位于边界内并构成实际图像的黑色像素感兴趣。如果我能得到图像的实际坐标就太好了。

我试过使用带掩码的 copyTo 方法,但我相信我没有设置正确的参数。同时,我还尝试使用 Core.fillPoly,它只是用命令中指定的颜色填充整个轮廓区域,对获取像素信息没有帮助。有人可以在这里指导我吗?我正在使用 OpenCV 2.3.1 开发 Android 2.2。

最佳答案

有一组像素落在轮廓边界内。还有另一组像素是黑色的。您想找到这两个集合的交集,即都在边界内且颜色为黑色的像素集合。

为此我会:

  1. 将轮廓绘制为填充形状,黑底白字(在它自己的图像中),这样它就是一个 mask 。您可以使用 cv::drawContourscv::fillPoly

  2. 过滤图像中的黑色像素作为另一个蒙版。您可以将 cv::thresholdTHRESH_BINARY_INV 和零阈值一起使用。

  3. 使用 bitwise_and 或简单地使用 & 运算符查找相交集,例如 matResult = mat1 & mat2;

    /li>

结果是一个与您的图像大小相同的矩阵,只有满足您在图像中处于轮廓内和黑色标准的像素具有非零值。您可以通过遍历此矩阵并测试非零值来获取各个坐标。

关于android - OpenCV 在轮廓边界内获取黑色像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11320940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com