我是opencv的新手,我无法找到解决此问题的任何解决方案。
我想知道是否可以将侵蚀/扩张仅应用于图像的特定部分,并让图像的其余部分保持原样。
答案 0 :(得分:2)
只需获取要应用侵蚀/扩张区域的子矩阵并就地应用该操作:
import cv2
import numpy as np
import matplotlib.pyplot as plt
im = cv2.imread('image_to_process.jpg')
roi = im[:100, :100, :]
# define your_kernel as needed
roi[:] = cv2.dilate(roi, your_kernel) # the [:] is important
请注意,我使用roi[:]
让dilate
的结果覆盖roi
的内容,而不是分配新的矩阵,以便更改实际反映在im
上太