我们从Python开源项目中,提取了以下2个代码示例,用于说明如何使用cv2.INPAINT_TELEA。
def erase_specular(image,lower_threshold=0.0, upper_threshold=150.0): """erase_specular: removes specular reflections within given threshold using a binary mask (hi_mask) """ thresh = cv2.inRange(image, np.asarray(float(lower_threshold)), np.asarray(256.0)) kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (7,7)) hi_mask = cv2.dilate(thresh, kernel, iterations=2) specular = cv2.inpaint(image, hi_mask, 2, flags=cv2.INPAINT_TELEA) # return cv2.max(hi_mask,image) return specular
def inpaint(self, win_size=3, rescale_factor=1.0): """ Fills in the zero pixels in the image. Parameters ---------- win_size : int size of window to use for inpainting rescale_factor : float amount to rescale the image for inpainting, smaller numbers increase speed Returns ------- :obj:`ColorImage` color image with zero pixels filled in """ # resize the image resized_data = self.resize(rescale_factor, interp='nearest').data # inpaint smaller image mask = 1 * (np.sum(resized_data, axis=2) == 0) inpainted_data = cv2.inpaint(resized_data, mask.astype(np.uint8), win_size, cv2.INPAINT_TELEA) inpainted_im = ColorImage(inpainted_data, frame=self.frame) # fill in zero pixels with inpainted and resized image filled_data = inpainted_im.resize( 1.0 / rescale_factor, interp='bilinear').data new_data = self.data new_data[self.data == 0] = filled_data[self.data == 0] return ColorImage(new_data, frame=self.frame)