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 相关文章推荐
Python操作列表之List.insert()方法的使用
May 20 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
Python自定义线程池实现方法分析
Feb 07 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
Python使用sax模块解析XML文件示例
Apr 04 Python
使用Python创建简单的HTTP服务器的方法步骤
Apr 26 Python
Django框架实现分页显示内容的方法详解
May 10 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
Python修改列表值问题解决方案
Mar 06 Python
浅析Python的命名空间与作用域
Nov 25 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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
php查看session内容的函数
2008/08/27 PHP
Cakephp 执行主要流程
2010/03/24 PHP
php数组去重实例及分析
2013/11/26 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
js 字符串操作函数
2009/07/25 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
利用策略模式与装饰模式扩展JavaScript表单验证功能
2017/02/14 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
python批量替换页眉页脚实例代码
2018/01/22 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
python利用线程实现多任务
2020/09/18 Python
Python jieba库分词模式实例用法
2021/01/13 Python
积极向上的团队口号
2014/06/06 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
保险内勤岗位职责
2015/04/13 职场文书
交心谈心活动总结
2015/05/11 职场文书
离婚被告代理词
2015/05/23 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery