我有一个任务将灰度图像转换为二进制,然后将其恢复为原始形式。我正在使用 opencv 的阈值函数将灰度图像转换为二进制图像。有什么办法可以将二值图像重新转换为灰度图像吗?
您可以按照以下步骤将灰度图像转换为二值图像:
i-通过导入cv2读取灰度图像
import cv2
im_gray = cv2.imread('path_of_grayscale_image.png', cv2.CV_LOAD_IMAGE_GRAYSCALE)
ii- 将灰度图像转换为二进制
(thresh, im_bw) = cv2.threshold(im_gray, 128, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
它使用 Otsu 的方法自动从图像中确定阈值,或者如果您已经知道阈值,则可以使用:
thresh = 127
im_bw = cv2.threshold(im_gray, thresh, 255, cv2.THRESH_BINARY)[1]
iii- 保存
cv2.imwrite('binary_image.png', im_bw)
我有一个问题,一些代码说这个错误:
im_gray = cv.imread('anyaForger.jpeg', cv.CV_LOAD_IMAGE_GRAYSCALE) ^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'cv2' has no attribute 'CV_LOAD_IMAGE_GRAYSCALE'