加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
opencv.py 2.25 KB
一键复制 编辑 原始数据 按行查看 历史
小luo爱学习 提交于 2021-09-07 09:18 . 提交代码
import cv2
import numpy as np
import pytesseract
from PIL import Image
image = cv2.imread('img_cut/001.png') #读入图片
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) #二值化函数
cv2.threshold(image, 140, 255, 0, image) #二值化函数
cv2.namedWindow("Image") #图片显示框的名字 这行没啥用
cv2.imshow("Image", image) #图片显示
cv2.waitKey(0)
cv2.imwrite('two_result.jpg', image) # 保存当前灰度值处理过后的文件
# 识别文字
string = pytesseract.image_to_string(image,lang="chi_sim")
print(string)
# import cv2
# import numpy as np
# lenna = cv2.imread("img_cut/001.png")
# #读取图片
# #lenna为一个3维数组。具体代表含义如下
# row, col, channel = lenna.shape
# #返回像素高度,像素宽度,和通道数一般为3
# #用一个二维数组表示每一个点的灰度
# lenna_gray = np.zeros((row, col))
# for r in range(row):
# for l in range(col):
# lenna_gray[r, l] = 1 / 3 * lenna[r, l, 0] + 1 / 3 * lenna[r, l, 1] + 1 / 3 * lenna[r, l, 2]
# #此方法为平均值法
# #除此之外还有其他多种方式将彩色图处理为灰度图
# lenna_gray[r, l] = 0.11 * lenna[r, l, 0] + 0.59 * lenna[r, l, 1] + 0.3 * lenna[r, l, 2]
# #加权平均值法
# lenna_binary = np.zeros_like(lenna_gray)
# #zeros_like表示生成一个维度同lenna_gray一样的全为0的张量
# threshold = 100
# for r in range(row):
# for l in range(col):
# if lenna_gray[r, l] >= threshold:
# lenna_binary[r, l] = 255
# else:
# lenna_binary[r, l] = 0
# cv2.imshow("lenna_binary", lenna_binary.astype("uint8"))
# cv2.waitKey()
# image = cv2.cvtColor(lenna, cv2.COLOR_RGB2GRAY) #二值化函数
# cv2.threshold(image, 140, 255, 0, image) #二值化函数
# result = cv2.blur(image,(5,5))
# #上为均值模糊去噪方法。周围的都为均值
# #又称为低通滤波
# gaussianResult = cv2.GaussianBlur(image,(5,5),1.5)
# #上为高斯模糊去噪方法。在某些情况下,需要对一个像素的周围的像素给予更多的重视。因此,可通过分配权重来重新计算这些周围点的值。
# #(5,5)不可以随意指定,只能指定1,3,5,7.....等数字
# result = cv2.medianBlur(image,5)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化