如何在python中使用循环将灰度图像转换为二进制图像?

2024-04-16 14:03:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想转换一个灰度图像不使用阈值方法。我可以达到图像的所有像素与下面的代码,但我不知道如何转换像素颜色因此。可以你帮我吗?在

import cv2


img=cv2.imread('rose.jpg',0)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

height=img.shape[0]
print("h=",h)
width=img.shape[1]
print("w=",w)  

for i in range(height):
    for j in range(width):
        k=img[i,j]
        print(k)

Tags: 方法代码in图像imgforrange阈值
2条回答

我已经试着运用你的逻辑和编码这是工作!在

import numpy as np
import cv2

img = cv2.imread("rose.jpg", cv2.IMREAD_GRAYSCALE)
height = img.shape[0]
width = img.shape[1]
threshold = 150

for i in np.arange(height):
    for j in np.arange(width):
        a = img.item(i,j) 
        if a > threshold:
           b = 255
        else:
           b = 0
    img.itemset((i,j), b)

cv2.imwrite('binary.jpg', img)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

我建议使用opencv中内置的threshold函数。在

threshold,threshold_image = cv2.threshold(img,127,255,cv2.THRESH_BINARY) 

其中127是阈值,255是最大值,cv2.THRESH_BINARY表示二进制阈值。如果你需要倒过来的话,你可以输入cv2.THRESH_BINARY_INV。在

阈值图像将是您感兴趣的图像。在

您可能需要先将图像转换为灰度,这可以用

^{pr2}$

相关问题 更多 >