【发布时间】:2020-08-17 15:26:35
【问题描述】:
我是 Python 和 OpenCV 的新手。我的任务是对图像的 ROI 执行一些操作,然后将该图像添加回原始图像。我怎么能做到这一点?例如,我想更改 ROI 图像的颜色,然后将其添加回来。我的代码如下:
for (i,c) in enumerate(contours_from_left_to_right):
cv2.drawContours(duplicate_img, [c], -1, (0,0,255), 3)
cent_moment = cv2.moments(c)
centroid_x = int(cent_moment['m10'] / cent_moment['m00'])
centroid_y = int(cent_moment['m01'] / cent_moment['m00'])
cv2.putText(duplicate_img, str(i+1), (centroid_x, centroid_y), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
cv2.imshow('Contours from Left to Right', duplicate_img)
cv2.waitKey(0)
(x, y, w, h) = cv2.boundingRect(c)
print("Top-Left Corner=",(x,y), "width= ",w,"height =",h)
ROI = roi_img[y:y+h, x:x+w]
cv2.imwrite("ROI_{}.png".format(image_number), ROI)
image_number += 1
【问题讨论】:
-
您想对 ROI 进行哪些更改?将 ROI 用作任何其他图像并根据需要对其进行处理。然后使用 numpy 切片将其放回原处。图像[y:y+h, x:x+w] = ROI
-
非常感谢,在您的评论的帮助下,我能够完成所需的任务。
标签: python opencv image-processing