首页 > 其他分享 >tesseract 识别文字,处理图像二值化,腐蚀膨胀

tesseract 识别文字,处理图像二值化,腐蚀膨胀

时间:2024-12-08 21:58:50浏览次数:4  
标签:image cv2 height width 腐蚀 pytesseract 图像 tesseract 二值化


from PIL import Image
import pytesseract
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'



import cv2
import numpy as np
from matplotlib import pyplot as plt
import pytesseract

# 如果Tesseract OCR不在默认路径下,需要设置tesseract_cmd的路径
# pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'  # 示例路径,根据你的安装位置修改
def displayimage(image):
    image=  binary_image
    # 定义目标大小(800x600像素)
    target_width = 800
    target_height = 600
    # 计算保持宽高比的缩放因子
    original_height, original_width = binary_image.shape
    scale_x = target_width / original_width
    scale_y = target_height / original_height
    scale = min(scale_x, scale_y)  # 使用较小的比例来确保图像不会被拉伸

    # 计算调整大小后的图像尺寸
    new_width = int(original_width * scale)
    new_height = int(original_height * scale)

    # 计算需要填充的黑边大小(如果需要的话)
    pad_x = (target_width - new_width) // 2
    pad_y = (target_height - new_height) // 2

    # 调整图像大小
    resized_image = cv2.resize(binary_image, (new_width, new_height))

    # 显示二值化后的图像
    cv2.imshow('Binary Image', resized_image)

    # 等待用户按键事件,参数0表示无限期等待
    cv2.waitKey(0)

    # 关闭所有OpenCV创建的窗口
    cv2.destroyAllWindows()




try:
    # 读取图像
    # image_path = "Picture/Pic_826.bmp"  # 替换为你的图像路径 thresh  10     白车
    image_path ="Picture/Pic_93.bmp"  # 替换为你的图像路径  thresh  60     黑车
    # image_path ="Pic_826_1.bmp"  # 替换为你的图像路径  thresh   10
    # image_path ="Picture/Pic_200001.bmp"  # 替换为你的图像路径  thresh   10
    # image_path ="001.jpg"  # 替换为你的图像路径  thresh   10



    image = cv2.imread(image_path)

    if image is None:
        raise FileNotFoundError("指定的图片文件不存在。")

    # 转换为灰度图像
    gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # 应用二值化
    _, binary_image = cv2.threshold(gray_image, 60, 255, cv2.THRESH_BINARY)   #  thresh  60 灰度值60以下为黑色, 以上为白

    displayimage(binary_image)

    # 定义腐蚀操作的结构元素(核)
    erode_kernel = np.ones((5, 5), np.uint8)  # 通常使用3x3或5x5的核进行腐蚀

    # 应用腐蚀操作
    eroded_image = cv2.erode(binary_image, erode_kernel, iterations=2)

    # 定义膨胀操作的结构元素(核),这里可以使用与腐蚀相同的核,也可以不同
    dilate_kernel = np.ones((3, 3), np.uint8)  # 或者使用不同的尺寸,如5x5

    # 应用膨胀操作
    dilated_image = cv2.dilate(eroded_image, dilate_kernel, iterations=3)  # 注意这里是对腐蚀后的图像进行膨胀


    plt.imshow(dilated_image, cmap='gray')
    plt.title('Preprocessed Image')
    plt.axis('off')
    plt.show()

    # 提取文本
    # text = pytesseract.image_to_string(binary_image, config='--psm 8')  # psm 8 表示将图像视为单个文本行

    # 识别字符
    text = pytesseract.image_to_string(dilated_image)  # psm 6 表示将图像视为单个单词

    # 打印提取的文本内容
    print("提取的文本内容:")
    print(text)

except FileNotFoundError:
    print("错误:指定的图片文件不存在。")
except Exception as e:
    print(f"发生错误:{e}")

    # def displayimage(image):

标签:image,cv2,height,width,腐蚀,pytesseract,图像,tesseract,二值化
From: https://blog.csdn.net/2301_77798341/article/details/144333141

相关文章

  • TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面
    前言前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。普通用户使用参照上一篇教程,在本地安装好TesseractOCR之......
  • 使用Tesseract进行图片文字识别
    Tesseract介绍Tesseract是一个开源的光学字符识别(OCR)引擎,最初由HP在1985年至1995年间开发,后来被Google收购并开源。Tesseract支持多种语言的文本识别,能够识别图片中的文字,并将其转换为可编辑和可搜索的数据格式。它适用于多种应用场景,包括文档扫描、图像处理、数字存档......
  • 二值化、压缩感知、自适应采样策略傅里叶单像素成像仿真
    傅里叶单像素成像仿真......
  • Windows下命令行及Java+Tesseract-OCR对图像进行(字母+数字+中文)识别,亲测可行
    第一步:下载TesseractOCR引擎安装包访问Tesseract的GitHub发布页面(https://github.com/tesseract-ocr/tesseract)或第三方下载站点(https://digi.bib.uni-mannheim.de/tesseract/),下载适合你操作系统的版本(最新版本)。推荐使用第三方下载:第二步:详细阐述一下第三方下载的安装过程......
  • C#图像处理与OCR:从验证码识别到文本提取 Tesseract实现验证码识别:本地化
    以下示例代码中,涉及到的知识点主要包括图像处理、验证码识别、Base64转换、图像预处理等。以下是详细的知识点梳理,以及相应的代码示例:1.图像加载与保存使用Image.FromFile加载本地图像,并使用Bitmap进行图像操作。Bitmap是图像处理的主要类,支持各种图像操作。代码......
  • opencv图片的二值化操作
            在图像处理领域中,二值化操作是一种非常基础且重要的技术。它将灰度图像或彩色图像转换为仅包含两种像素值的图像,即黑色和白色(或者更一般地说,前景和背景)。这种操作在处理图像时极大地简化了图像数据的复杂度,使得后续的图像分析和处理步骤变得更加高效和直观。......
  • OpenCV和Tesseract OCR识别复杂验证码喽~~
    目录代码实现思路流程:主要流程:整体代码效果展示原图处理之后的图总结流程图代码实现思路使用OpenCV进行图像预处理,并通过TesseractOCR来识别验证码中的字符。以下是其实现思路的详细讲解:流程:加载验证码图像:使用cv2.imread()读取验证码图片,将其加载为......
  • 膨胀与腐蚀,开运算与闭运算
    复习一下以前学过的图像处理知识点,简单记录一下腐蚀与膨胀,开运算与闭运算的知识,本文处理均针对二值化图像。opencv二值化函数为threshold()。一、腐蚀1、定义与原理腐蚀是一种消除连通域的边界点,使边界向内收缩的处理,如下图所示:其实现原理是:首先设计一个结构元素,原点定位......
  • python实现人脸轮廓提取(膨胀和腐蚀)
    目录一、形态学操作的理论基础1.1膨胀操作1.2腐蚀操作1.3膨胀与腐蚀的结合应用二、Python实现膨胀和腐蚀算法2.1安装OpenCV库2.2使用膨胀和腐蚀提取人脸轮廓2.3代码详解三、实验结果与分析3.1实验结果3.2结果分析四、形态学操作在人......
  • 文本识别之Tesseract安装
    1.概述OCR,即OpticalCharacterRecognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。tesseract下载地址:Indexof/tesseract进入下载页面,可以看到有......