图像文字识别用Python-OpenCV写代码
时间: 2024-01-28 21:03:15 浏览: 31
好的,我可以为您提供一些Python-OpenCV代码,实现图像文字识别。
首先,您需要安装Tesseract OCR引擎和Python的tesseract库,可以使用以下命令进行安装:
```
pip install pytesseract
```
接下来,您需要安装OpenCV库,可以使用以下命令进行安装:
```
pip install opencv-python
```
安装完成后,您可以使用以下代码进行图像文字识别:
```python
import cv2
import pytesseract
# 读取图像
img = cv2.imread('image.jpg')
# 灰度化处理
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)
# 识别文字
text = pytesseract.image_to_string(thresh, lang='chi_sim')
# 输出识别结果
print(text)
```
在这段代码中,我们首先读取图像,然后进行灰度化处理和二值化处理,接着使用pytesseract库进行文字识别,最后输出识别结果。
需要注意的是,这段代码只能识别中文,如果需要识别英文等其他语言,可以将lang参数设置为对应的语言代号。
希望这段代码能够帮助到您!
相关问题
使用python-opencv写一段识别银行卡数字的代码
以下是使用Python OpenCV库实现银行卡数字识别的示例代码:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取银行卡图像
img = cv2.imread('bank_card.jpg')
# 将图像转化为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 将灰度图像进行二值化处理
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
# 对二值化图像进行形态学操作,去除噪点
kernel = np.ones((3,3), np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=2)
# 找到轮廓
contours, hierarchy = cv2.findContours(opening, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 循环遍历每个轮廓
for contour in contours:
# 计算轮廓面积
area = cv2.contourArea(contour)
if area < 100:
continue
# 找到轮廓的外接矩形
x, y, w, h = cv2.boundingRect(contour)
# 裁剪出数字图像
digit_roi = opening[y:y+h, x:x+w]
# 调整数字图像大小
resized_digit_roi = cv2.resize(digit_roi, (28, 28))
# 将数字图像转化为 MNIST 数据集的格式
mnist_digit = resized_digit_roi.reshape(1, 28, 28, 1).astype('float32') / 255.0
# 使用训练好的模型进行数字识别
prediction = model.predict(mnist_digit)
digit = np.argmax(prediction)
# 在原图像上绘制识别结果
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.putText(img, str(digit), (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2)
# 显示结果图像
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
plt.show()
```
该代码使用了OpenCV库对银行卡数字进行了识别。其中,首先读取了银行卡图像,然后将图像转化为灰度图像,再进行二值化处理,去除噪点,找到数字轮廓,裁剪数字图像,将数字图像转化为MNIST数据集的格式,使用训练好的模型进行数字识别,最后在原图像上绘制识别结果。需要注意的是,该代码中的模型需要自己训练或者使用已经训练好的模型进行识别。
写一个python-opencv 轮廓识别的代码
以下是一个简单的 Python-OpenCV 轮廓识别的代码示例:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行二值化处理
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0, 255, 0), 3)
# 显示结果
cv2.imshow('Contours', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码可以读取一张图像,将其转换为灰度图像并进行二值化处理,然后查找图像中的轮廓,并将轮廓绘制在原图像上。