arrays - 为什么像素值保持不变?

标签 arrays numpy opencv image-processing

因此,我尝试用不同的灰色阴影填充图像的不同区域。 这是我的输入图像: 1

所以这是我用一些灰色阴影填充其中一个区域的代码:

image = cv.imread('img.jpg', 0)

height, width = image.shape[:2]

for i in range(height):
    for j in range(width):
        if image[i][j] == 255:
            cv.floodFill(image, None, (i, j), 90)
            cv.imwrite('test1.jpg', image)
            break
    else:
        continue
    break   

之后我得到: 2

如果我尝试再次加载新图像并遍历像素,在上一个示例中用于开始填充的相同像素仍然具有 255 值而不是 90。 那个怎么样?我在这里缺少什么?

谢谢大家!

最佳答案

floodFill()和其他采用 的函数期望它们在x, y 坐标中。您发送的是 row, col 坐标(即 y, x),因此您正在 floodfill() 不同的区域比你实际检测到的是白色。

关于arrays - 为什么像素值保持不变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52571629/

相关文章:

python - numpy poly() 和 root() 不可逆吗?

python - OpenCV VideoCapture仅在5个read()之后更新

python - Numpy 3D 数组排列和 reshape

python - TensorFlow,什么时候可以使用类似 Python 的负索引?

java.lang.ArrayIndexOutOfBoundsException : 48

javascript - 需要帮助使用 JQuery .inArray() 检查值是否存在

c++ - 继承时找不到类名

python - 使用 opencv 删除圆圈

java - 在 Java 赋值中使用数组和 for 循环时遇到问题

javascript - 为什么它返回 '-1'而不是索引jQuery的索引