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 相关文章推荐
Go语言基于Socket编写服务器端与客户端通信的实例
Feb 19 Python
Python实现Linux命令xxd -i功能
Mar 06 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
Python实现使用request模块下载图片demo示例
May 24 Python
Django REST Framework之频率限制的使用
Sep 29 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
Dec 04 Python
Python通过2种方法输出带颜色字体
Mar 02 Python
Django ValuesQuerySet转json方式
Mar 16 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
Python3爬虫中Selenium的用法详解
Jul 10 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的类树(支持无限分类)
2006/10/09 PHP
解决MySQL中文输出变成问号的问题
2008/06/05 PHP
PHP中常用的字符串格式化函数总结
2014/11/19 PHP
PHP速成大法
2015/01/30 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
$()JS小技巧
2007/07/21 Javascript
js 调整select 位置的函数
2008/02/21 Javascript
extjs fckeditor集成代码
2009/05/10 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
解决python文件双击运行秒退的问题
2019/06/24 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
歌唱比赛主持词
2014/03/18 职场文书
2014年党课学习材料
2014/05/11 职场文书
社区娱乐活动方案
2014/08/21 职场文书
2014年评职称工作总结
2014/11/20 职场文书
2014年医院个人工作总结
2014/12/09 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
MongoDB使用场景总结
2022/02/24 MongoDB