问题描述
我试图在 python 中覆盖段落内的图像。
这是原图,第一段中间有两张图片。
抱歉图片文件太大了..我想将第一段中间的两个图像转换为纯白色(用纯色覆盖它们)。我有这两张图片的坐标,但我如何才能改变这些特定区域的颜色?
这是这两个图像的 x,y 坐标:
图像_1:
left,right = 678,925
top,bottum = 325,373
图像_2:
left,right = 130,1534
top,bottum = 403,1508
请帮忙!非常感谢!!
解决方法
以下是如何“编辑”给定左上角和右下角的图像部分。
import cv2
import numpy as np
# load image
img = cv2.imread("page.jpg");
# target boxes
boxes = [];
# first box
tl = [678,325];
br = [925,373];
boxes.append([tl,br]);
# second box
tl = [130,403];
br = [1534,1508];
boxes.append([tl,br]);
# redact with numpy slicing
for box in boxes:
tl,br = box;
img[tl[1]:br[1],tl[0]:br[0]] = [255,255,255]; # replace with white
# show image
cv2.imshow("Redacted",img);
cv2.waitKey(0);
cv2.imwrite("redacted.png",img); # save
我认为您提供的盒子不正确。第二个很大,第一个很小。这是使用这些框的图片:
这个代码应该适用于任何盒子,所以只需将角坐标调整到正确的位置就可以了。