python - 如何改进质量差图像的文本检测?
问题描述
通常,阈值和文本检测对质量好的图像有好处,但坏的图像确实不好。我认为坏图像需要一些预处理,但我不知道如何。你有什么想法来改进质量差图像的文本检测吗?
import sys
import cv2
import math
img = cv2.imread(sys.argv[1])
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, bw = cv2.threshold(gray, 100, 255, cv2.THRESH_BINARY)
kernel = cv2.getStructuringElement(cv2.MORPH_DILATE, (5, 5))
grad = cv2.morphologyEx(bw, cv2.MORPH_GRADIENT, kernel)
contours, hierarchy = cv2.findContours(grad, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.01 * peri, True)
x, y, w, h = cv2.boundingRect(approx)
if math.fabs(cv2.contourArea(approx)) > 100:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow('rects', img)
cv2.waitKey(0)
良好的质量形象
图像质量差
解决方案
推荐阅读
- python - 两个 pandas 列具有相同的值,但写法不同
- c# - 在c#中使用表达式树动态调用与参数类型对应的方法
- javascript - 如何在变量前面键入文本
- javascript - JavaScript 将对象中的数据链接到 HTML 元素
- jquery - JQuery .load() 图像不显示
- node.js - Node.js 更新后无法创建应用程序
- python - 使用 np.random.shuffle() 附加到循环内的列表时出现问题
- node.js - 无法获取授权代码:错误:证书链中的自签名证书
- angular - 无法使用 MatTableDataSource 显示 http 数据
- ios - 在 Xamarin 项目中使用 OneSignal 创建通知扩展服务时配置文件无效