基于opencv对图像上的文字进行识别并框选

文章介绍了使用OpenCV进行图像处理,包括读取图像、转换为灰度、阈值处理、寻找轮廓以及在原图上绘制边界矩形的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 导入库

import cv2 as cv

读取位于路径下的图像,并将其存储在变量img中。 

img = cv.imread(r"C:\Users\RANDALL\Desktop\wenzi\english.webp"

img从BGR颜色空间转换为灰度颜色空间,结果存储在变量gray中。 

gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)

 对gray图像进行阈值处理。如果像素值大于150,则赋值为255,否则赋值为0。结果存储在变量thresh中,而ret是一个标志,通常在此种情况下可以忽略。

ret,thresh = cv.threshold(gray,150,255,cv.THRESH_BINARY_INV)

查找thresh图像中的轮廓。这里只查找最外层的轮廓,并简单地压缩轮廓的近似链。结果存储在变量contourshierarchy中。

contours,herarchy = cv.findContours(thresh,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)

 遍历找到的所有轮廓。

for contour in contours:

 计算当前轮廓的边界矩形,其左上角坐标为(x,y),宽度和高度分别为w和h。

x,y,w,h = cv.boundingRect(contour)

 在原始图像img上绘制当前轮廓的边界矩形,颜色为红色(BGR:(0,0,255)),线宽为2。

 cv.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)

显示框选后图像。 

cv.imshow('demo',img)
cv.waitKey(0)

下面是运行结果: 

原图 

 

框选后图片 

 

另外一张图像 

 

完整代码示例:

import cv2 as cv

img = cv.imread(r"C:\Users\RANDALL\Desktop\wenzi\wen3.png")

gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
ret,thresh = cv.threshold(gray,150,255,cv.THRESH_BINARY_INV)
contours,herarchy = cv.findContours(thresh,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE)
for contour in contours:
    x,y,w,h = cv.boundingRect(contour)
    cv.rectangle(img,(x,y),(x+w,y+h),(0,0,255),2)

cv.imshow('demo',img)
cv.waitKey(0)

如果文章对你有所帮助,麻烦动动小手点点关注!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值