使用python从错误的照明图像中分割文本
我有三种类型的图像,想从中分割文本。因此,我得到了一个干净的二值化img,如下面的第一幅图像。下面是三种类型的图像 我尝试过各种技巧,但总是有失败的案例。我首先尝试使用大津算法对img进行阈值设置,但在下面的图像中效果不佳 我尝试了使用python从错误的照明图像中分割文本,python,opencv,image-processing,image-segmentation,text-segmentation,Python,Opencv,Image Processing,Image Segmentation,Text Segmentation,我有三种类型的图像,想从中分割文本。因此,我得到了一个干净的二值化img,如下面的第一幅图像。下面是三种类型的图像 我尝试过各种技巧,但总是有失败的案例。我首先尝试使用大津算法对img进行阈值设置,但在下面的图像中效果不佳 我尝试了Guassian,双边和普通模糊内核,但没有太多地增强效果 任何人都可以提供帮助 代码是我从中获得的最佳结果 import cv2 gray = cv2.imread("/home/shrouk/Pictures/f2.png", 0) thresholded =
Guassian
,双边
和普通模糊内核,但没有太多地增强效果
任何人都可以提供帮助
代码是我从中获得的最佳结果
import cv2
gray = cv2.imread("/home/shrouk/Pictures/f2.png", 0)
thresholded = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
cv2.imshow("img", thresholded)
这是我需要的最终结果
这是第一类失败的图像。它失败了,因为文本的灰度在图像的右边变浅了
大津大学的结果就在这里,我只需要一个方法来增强右起第三行中的单词:
第二种类型失败,因为背景较暗
otsu的结果不是很好,因为左边的单词看起来像放大的单词
这是由大津正确设定阈值的类型,因为没有噪音
尝试使用
import cv2
image = cv2.imread("2.png", 0)
adaptive = cv2.adaptiveThreshold(image,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,11,5)
cv2.imshow("adaptive", adaptive)
cv2.waitKey()