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实现设置windows桌面壁纸代码分享
Mar 28 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
Python判断文件和字符串编码类型的实例
Dec 21 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
对Python 内建函数和保留字详解
Oct 15 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
详解Python time库的使用
Oct 10 Python
pytorch实现线性拟合方式
Jan 15 Python
tensorflow生成多个tfrecord文件实例
Feb 17 Python
python简单验证码识别的实现过程
Jun 20 Python
python 学习GCN图卷积神经网络
May 11 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
example1.php
2006/10/09 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php获取字段名示例分享
2014/03/03 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
Prototype Selector对象学习
2009/07/23 Javascript
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
2009/10/29 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
javascript实现复选框选中属性
2015/03/25 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
使用异步组件优化Vue应用程序的性能
2019/04/28 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
[05:04]完美世界携手游戏风云打造 卡尔工作室地图界面篇
2013/04/23 DOTA
复制粘贴功能的Python程序
2008/04/04 Python
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
python实现内存监控系统
2021/03/07 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
Notino法国:购买香水和化妆品
2019/04/15 全球购物
监察建议书范文
2014/03/12 职场文书
单位委托书
2014/10/15 职场文书
2015年八一建军节活动总结
2015/03/20 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
学校就业保障协议书
2019/06/24 职场文书
Pytorch可视化的几种实现方法
2021/06/10 Python