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 pdb调试方法分享
Jan 21 Python
Django实现快速分页的方法实例
Oct 22 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
python+mysql实现学生信息查询系统
Feb 21 Python
python处理“
Jun 10 Python
python制作朋友圈九宫格图片
Nov 03 Python
基于python实现把图片转换成素描
Nov 13 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
Python使用OpenPyXL处理Excel表格
Jul 02 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功能函数
2015/04/15 PHP
Linux平台php命令行程序处理管道数据的方法
2016/11/10 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
原生js更改css样式的两种方式
2017/03/15 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
2019/11/26 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
Square Off美国/加拿大:世界上最聪明的国际象棋棋盘
2018/12/06 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
UML设计模式笔试题
2014/06/07 面试题
总经理助理岗位职责
2013/11/08 职场文书
毕业生个人求职自荐信
2014/02/26 职场文书
感恩母亲节演讲稿
2014/05/07 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
小学英语复习计划
2015/01/19 职场文书
会计人员岗位职责
2015/02/03 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers