如何更改图像特定区域的颜色?
How to change the color for a certain area of an image?
我正在尝试覆盖 python 中段落内的图像。
这是原图,第一段中间有两张图
对不起,图片文件太大了。我想将第一段中间的两张图片转换成纯白色(用纯色覆盖它们)。我有这两张图片的坐标,但我怎样才能改变这些特定区域的颜色?
这是这两张图片的 x,y 坐标:
image_1:
left, right = 678, 925
top, bottum = 325, 373
image_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
我觉得你给的盒子不对。第二个很大,第一个很小。这是使用这些框的图片:
这段代码应该适用于任何盒子,所以只需将角坐标调整到正确的位置即可。
我正在尝试覆盖 python 中段落内的图像。
这是原图,第一段中间有两张图
对不起,图片文件太大了。我想将第一段中间的两张图片转换成纯白色(用纯色覆盖它们)。我有这两张图片的坐标,但我怎样才能改变这些特定区域的颜色?
这是这两张图片的 x,y 坐标:
image_1:
left, right = 678, 925
top, bottum = 325, 373
image_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
我觉得你给的盒子不对。第二个很大,第一个很小。这是使用这些框的图片:
这段代码应该适用于任何盒子,所以只需将角坐标调整到正确的位置即可。