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查询Mysql时返回字典结构的代码
Jun 18 Python
简单介绍Python中的floor()方法
May 15 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
利用pandas将非数值数据转换成数值的方式
Dec 18 Python
Python表达式的优先级详解
Feb 18 Python
PyCharm中如何直接使用Anaconda已安装的库
May 28 Python
Python-opencv实现红绿两色识别操作
Jun 04 Python
python Paramiko使用示例
Sep 21 Python
python操作链表的示例代码
Sep 27 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 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
AngularJS快速入门
2015/04/02 Javascript
理解javascript中的闭包
2017/01/11 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python re模块介绍
2014/11/30 Python
python监控键盘输入实例代码
2018/02/09 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
Python异常处理知识点总结
2019/02/18 Python
python+django+rest框架配置创建方法
2019/08/31 Python
python dataframe NaN处理方式
2019/12/26 Python
python如何写个俄罗斯方块
2020/11/06 Python
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
农村党支部先进事迹
2014/01/14 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
浅析python中特殊文件和特殊函数
2022/02/24 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技