Python 基于opencv的水印检测

Python 基于opencv的水印检测,python,opencv,watermark,opencv-drawcontour,Python,Opencv,Watermark,Opencv Drawcontour,我想使用opencv在下图中的单词“Deleted”周围画一个框,并找到坐标 我从以下代码中获得了上述图像: kernel = np.ones((3,3),np.uint8) dilation = cv2.dilate(img,kernel,iterations =1) plt.imshow(dilation) 原始图像为: 基于您已经编写的代码,您需要反转结果并应用findContours() 你需要看看哪个盒子更好,哪个轮廓最合适。 这个答案会有帮助: 反转图像,使文本在黑色背景上为白色

我想使用opencv在下图中的单词“Deleted”周围画一个框,并找到坐标

我从以下代码中获得了上述图像:

kernel = np.ones((3,3),np.uint8)
dilation = cv2.dilate(img,kernel,iterations =1)
plt.imshow(dilation)
原始图像为:


基于您已经编写的代码,您需要反转结果并应用
findContours()

你需要看看哪个盒子更好,哪个轮廓最合适。 这个答案会有帮助:

反转图像,使文本在黑色背景上为白色。然后通过区域滤波得到轮廓并去除小轮廓。然后从cv2.minareact()获取旋转的边界框。你能给我一个示例代码吗。我无法编写代码imagem=cv2。按位不(膨胀)imagem=cv2。cvtColor(imagem,cv2。COLOR\u RGB2GRAY)轮廓,层次=cv2。查找轮廓(imagem,cv2.RETR\u树,cv2.CHAIN\u近似简单)cv2。绘制轮廓(imagem,轮廓,-1,(0255,0),3)`我得到一个黑色屏幕,请参见下面的答案。
inv_img = cv2.bitwise_not(dilation)
contours, hierarchy = cv2.findContours(gray_in, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
for cnt in contours:
  rect = cv2.minAreaRect(cnt)
  box = cv2.cv.BoxPoints(rect) # cv2.boxPoints(rect) for OpenCV 3.x
  box = np.int0(box)
  cv2.drawContours(im,[box],0,(0,0,255),2)