python3+openCV 获取图片中文本区域的最小外接矩形实例


Posted in Python onJune 02, 2020

我就废话不多说了,大家还是直接看代码吧!

print("thresh =",thresh)
coords = np.column_stack(np.where(thresh > 0))//获取thresh二值灰度图片中的白色文字区域的点
print("coords =",coords)

min_rect = cv2.minAreaRect(coords)//由点集获取最小矩形(包含中心坐标点、宽和高、偏转角度)
print("min_rec =",min_rect)
box = cv2.boxPoints(min_rect)//获取最小矩形的4个顶点坐标。

但是通过一下这个绘制矩形函数,画出来上述的最小矩形与文字区域偏差很大,但是获取到的偏转角度是对的。

不明白他们什么关系啊?

#  根据四点画原矩形
def drawRect(img, pt1, pt2, pt3, pt4, color, lineWidth):
  cv2.line(img, tuple(pt1), tuple(pt2), color, lineWidth)
  cv2.line(img, tuple(pt2), tuple(pt3), color, lineWidth)
  cv2.line(img, tuple(pt3), tuple(pt4), color, lineWidth)
  cv2.line(img, tuple(pt1), tuple(pt4), color, lineWidth)

有哪路朋友路过,帮一下忙,给指点一二,多谢朋友

附实验问题截图:

python3+openCV 获取图片中文本区域的最小外接矩形实例

补充知识:opencv2 3.2 类中实现提取蓝天颜色

我就废话不多说了,大家还是直接看代码吧!

#include<iostream>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;

class ColorDetector{

private:
int maxDist; //最小差距
Vec3b target ; //目标颜色
Mat result;
public:
ColorDetector():maxDist(100),target(0,0,0)
{

}
void setColorDistanceThreshold(int distance) //设置颜色差距的阈值
{
if(distance<0)
distance=0;
maxDist=distance;
}
int getColorDistanceThreshold() const //取得颜色差距的阈值
{
return maxDist;
}

void setTargetColor(uchar blue,uchar green,uchar red) //设置需要检测的颜色
{
target=Vec3b(blue,green,red);
}

void setTargetColor(Vec3b color)
{
target=color;
}

Vec3b getTargetColor() const
{
return target;
}
Mat process(const cv::Mat &image) ;
int getDistance(const Vec3b &color) ;
};

Mat ColorDetector::process(const cv::Mat &image) 
{
result.create(image.rows,image.cols,CV_8U);
Mat_<Vec3b>::const_iterator it=image.begin<Vec3b>();
Mat_<Vec3b>::const_iterator itend=image.end<Vec3b>();
Mat_<uchar>::iterator itout=result.begin<uchar>();
for ( ; it!= itend; ++it, ++itout) 
{
if (getDistance(*it)<maxDist) 
{
*itout=255;
} 
else 
{
*itout=0;
}
}
return result;
}

int ColorDetector::getDistance(const Vec3b &color) 
{
return abs(color[0]-target[0])+
abs(color[1]-target[1])+
abs(color[2]-target[2]);
}
void main()
{
ColorDetector cdetect;
Mat img=imread("C:\\Users\\Administrator\\Desktop\\工作\\testp\\boldt.jpg");
if(img.empty())
return;

cdetect.setTargetColor(230,190,130);

imshow("original",img);
imshow("result",cdetect.process(img));
waitKey(0);
}

以上这篇python3+openCV 获取图片中文本区域的最小外接矩形实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
python使用urllib2实现发送带cookie的请求
Apr 28 Python
详解Python中的strftime()方法的使用
May 22 Python
利用python代码写的12306订票代码
Dec 20 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
django admin后台添加导出excel功能示例代码
May 15 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python PyPDF2模块安装使用解析
Jan 19 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
python编写一个会算账的脚本的示例代码
Jun 02 #Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 #Python
什么是Python中的顺序表
Jun 02 #Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 #Python
Python爬虫入门有哪些基础知识点
Jun 02 #Python
Python实现进度条和时间预估的示例代码
Jun 02 #Python
python爬虫容易学吗
Jun 02 #Python
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php集成动态口令认证
2016/07/21 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
thinkPHP5.0框架API优化后的友好性分析
2017/03/17 PHP
PHP中创建和编辑Excel表格的方法
2018/09/13 PHP
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
使用JavaScript判断手机浏览器是横屏还是竖屏问题
2016/08/02 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
2017/01/16 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
python中enumerate函数用法实例分析
2015/05/20 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python hash每次调用结果不同的原因
2019/11/21 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
行政人员工作职责
2013/12/05 职场文书
修理厂厂长岗位职责
2014/01/30 职场文书
运动会通讯稿100字
2014/01/31 职场文书
迟到检讨书500字
2014/02/05 职场文书
元旦寄语大全
2014/04/10 职场文书
个人职业及收入证明
2014/10/13 职场文书
公司行政管理制度范本
2015/08/05 职场文书
爱国主题班会教案
2015/08/14 职场文书
Python办公自动化解决world文件批量转换
2021/09/15 Python