python - 用for循环遍历二值化图像可能吗?

标签 python numpy opencv image-processing binary

这是我的python代码:

import cv2
img = cv2.imread("foo.jpg")

#here I can iterate trough each pixel since I have a 2D array
for x in range(img.shape[0]):
    for y in range(img.shape[1]):
    pass #maipulate each pixel

gary = cv2.cvtColor(img, COLOR_BGR2GRAY)
bin = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)

#here I can not iterate trough each pixel since I have a 1D array
for x in range(img.shape[0]):
    for y in range(img.shape[1]):
        pass

我的问题:
如何遍历二进制图像的每个像素?
我想使用滑动窗口搜索算法。

最佳答案

您的代码无效,因为threshold()返回的元组包含2个值:您设置的阈值(127)和二进制图像。如果将它们分开,则可以使用相同的双循环访问每个值/像素。
我已经修改了您的代码,因为那里也有一些错字。

import cv2
img = cv2.imread("foo.jpg")

#here I can iterate trough each pixel since I have a 2D array
for x in range(img.shape[0]):
    for y in range(img.shape[1]):
    pass #maipulate each pixel

gray= cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh, bin_img = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)

for x in range(bin_img.shape[0]):
    for y in range(bin_img.shape[1]):
        pass

关于python - 用for循环遍历二值化图像可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904738/

相关文章:

python - numpy中二进制矩阵的有效操作

python - 模块 'cv2' 没有 'VideoCapture' 成员

python - 我的简单客户端每次尝试连接到我的 python 套接字服务器时都会崩溃

python - 我如何使用 python 为台式电脑构建自定义搜索引擎

numpy - 如何更快地 np.roll() ?

python - 将OpenCV中的比较运算符转换为Python

python - 如何使用opencv和多线程在python中捕获视频(logitech c920)

python - 导入同一模块中定义的类

python - 处理 makefile 对 python 数据分析的作用的最先进方法是什么?

python - 用计算向前填充 DataFrame/数组的更好方法?