java opencv 文字区域,使用Opencv检测图像中的文本区域

I have an image and want to detect the text regions in it.

I tried TiRG_RAW_20110219 project but the results are not satisfactory. If the input image is http://imgur.com/yCxOvQS,GD38rCa it is producing http://imgur.com/yCxOvQS,GD38rCa#1 as output.

Can anyone suggest some alternative. I wanted this to improve the output of tesseract by sending it only the text region as input.

解决方案

import cv2

def captch_ex(file_name):

img = cv2.imread(file_name)

img_final = cv2.imread(file_name)

img2gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

ret, mask = cv2.threshold(img2gray, 180, 255, cv2.THRESH_BINARY)

image_final = cv2.bitwise_and(img2gray, img2gray, mask=mask)

ret, new_img = cv2.threshold(image_final, 180, 255, cv2.THRESH_BINARY) # for black text , cv.THRESH_BINARY_INV

'''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java OpenCV 文本识别算法通常使用OCR(Optical Character Recognition,光学字符识别)算法实现。其,Tesseract OCR 是一个开源的OCR引擎,它可以识别多种语言的文本,并且在Java OpenCV有很好的支持。 以下是使用Java OpenCV的Tesseract OCR实现文本识别的基本步骤: 1. 首先需要安装 Tesseract OCR 引擎,并将其配置到系统环境变量。 2. 使用Java OpenCV的Imgcodecs类加载图像并创建Mat对象。 3. 对图像进行预处理,例如图像二值化、去噪等操作,以提高识别率。 4. 使用Tesseract OCR引擎进行文本识别,并将结果输出到控制台或文件。 以下是使用Java OpenCV实现文本识别的示例代码: ``` import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; import org.opencv.imgproc.Imgproc; import org.bytedeco.javacpp.tesseract.TessBaseAPI; public class TextRecognition { public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // 加载图像 Mat image = Imgcodecs.imread("text.png"); // 图像预处理 Mat gray = new Mat(); Imgproc.cvtColor(image, gray, Imgproc.COLOR_BGR2GRAY); Imgproc.threshold(gray, gray, 0, 255, Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU); Imgproc.medianBlur(gray, gray, 3); // 创建 Tesseract OCR 引擎并进行识别 TessBaseAPI api = new TessBaseAPI(); api.Init(null, "eng"); api.SetImage(gray); String result = api.GetUTF8Text().getString(); api.End(); // 输出识别结果 System.out.println("识别结果:\n" + result); } } ``` 在上述代码,我们首先加载了图像,并对其进行了预处理。然后创建了一个Tesseract OCR引擎实例,并将预处理后的图像作为输入进行文本识别。最后输出识别结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值