【发布时间】:2020-02-15 08:46:59
【问题描述】:
我的期刊页面图像很少,其中有两列我想在不更改尺寸的情况下将一列屏蔽为白色。这意味着即使只有一列,输出图像也应具有与输入图像相同的尺寸。
我能够屏蔽图像,但蒙版部分变成黑色,我想要白色。
import cv2
import numpy as np
# Load the original image
image = cv2.imread(filename = "D:\output_final_word5\image1.jpg")
# Create the basic black image
mask = np.zeros(shape = image.shape, dtype = "uint8")
# Draw a white, filled rectangle on the mask image
cv2.rectangle(img = mask, pt1 = (0, 0), pt2 = (795, 3000), color = (255, 255,
255), thickness = -1)
# Apply the mask and display the result
maskedImg = cv2.bitwise_and(src1 = image, src2 = mask)
#cv2.namedWindow(winname = "masked image", flags = cv2.WINDOW_NORMAL)
cv2.imshow("masked image",maskedImg)
cv2.waitKey(delay = 0)
cv2.imwrite("D:\Test_Mask.jpg",maskedImg)
我的最终目标是读取一个文件夹,其中有几个期刊页面,其中需要通过屏蔽第一列然后另一列来保存而不影响输入图像的尺寸,并且屏蔽部分应该是白色的。 以下是附加的输入图像...
而且输出应该是这样的......
【问题讨论】:
-
最后两张图片是预期的输出?
-
@ZdaR 是的.......
-
你可以使用 PIL/pillow 来绘制白色 recatangles 而不使用 cv2
-
如果可以在图像上绘制矩形,我不知道为什么要使用蒙版。
-
同意@furas。在这种情况下不需要口罩。只需复制图像2份,为image_1的前半部分绘制一个白色矩形,为image_2的后半部分绘制一个白色矩形
标签: python numpy opencv image-processing mask