opencv检测图像中的矩形(opencv 特征提取)

技术opencv3.0识别并提取图形中的矩形的方法是什么这篇文章将为大家详细讲解有关opencv3.0识别并提取图形中的矩形的方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有

本文将详细解释opencv3.0如何识别和提取图形中的矩形。这篇文章的内容质量很高,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。

使用opencv识别图片中的矩形。

其中遇到的主要问题是矩形内部的形状导致轮廓不闭合。

1.高斯滤波输入灰度图像2。制作灰度直方图,提取阈值和二值化3。提取图像的轮廓4。识别图像5中的矩形。提取图像中的矩形。

1.对输入灰度图像进行高斯滤波。

CV : mat src=CV : im read(' f : \ \ t 13 . BMP ',CV _ BGR2GRAY);cv:Mat hsvgaussianbulr(src,hsv,cv :3360 size(5,5),0,0);

2.制作灰度直方图,提取阈值,做二值化。

给定图片,背景为黑色,矩形的背景颜色为灰色,矩形中的其他一些形状为白色。可以称为:提取轮廓时,矩形的外轮廓不闭合。因此,我们需要对整个画面做一个灰度直方图,找到阈值并进行二值化。

把手。也就是说,如果像素值(黑色)小于阈值,将其设置为0(纯黑色);如果像素值(灰色和白色)大于阈值,则设置

设置为255(白色)

//将灰度量化到30级int gbins=16int HistSize[]={ gbins };

//灰度从0到256浮动灰度[]={0,256 };

const float * ranges[]={ granges };cv:MatND和hist

//我们从第0个和第1个通道计算直方图int channel[]={ 0 };

//计算hist calcHist(hsv,1,通道,cv:Mat(),

//不要使用掩码hist,1,histSize,ranges,true,

//直方图均匀假);

//求hist double maxVal=0的最大值;

minMaxLoc(hist,0,maxVal,0,0);int scale=20

cv:Mat毫安时组织;

histImg.create(500,gbins*scale,CV _ 8UC 3);

//显示hist图像的灰度(int g=0;ggbinsg ){

float binVal=hist.atfloat(g,0);

int intensity=cvRound(BinVal * 255);

矩形(组图,cv:Point点(g *比例尺,0),

CV : point((g ^ 1)* scale-1,binVal/maxVal*400),CV_RGB(0,0,0),CV _ FILLED);} cv : im show(' Histmg ',Histmg);

//阈值处理cv:Mat hsvRe

阈值(hsv,hsvRe,64,255,cv : thresh _ BInary);

3.提取图片的轮廓

为了识别图片中的矩形,在识别之前需要提取图片的轮廓。经过滤波和二值化后,轮廓提取后的效果比提取前好得多。

识别矩形

矩形识别的条件是:图片中识别出的轮廓是四个顶角的凸边形状,所有顶角的角度都是90度。

矢量点约;for(size _ t I=0;I等高线. size();I){ 0

近似值(Mat(等高线[i]),近似值,弧长(Mat(等高线[i]),真)*0.02,真);

if(约大小()==4个晶圆厂(contourArea(Mat(约)))1000 iscon sourconvex(Mat(约))){ doublemax余弦=0;

for(int j=2;j5;j ) {双余弦=fabs(角度(约[j%4],约[j-2],约[j-1]);

最大余弦=最大(最大余弦,余弦);}

if(最大余弦值0.3)平方,push_back(近似值);

} }

opencv3.0中识别和提取图形中矩形的方法是什么,希望在这里分享

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/147367.html

(0)

相关推荐

  • 如何理解django中url路由系统

    技术如何理解django中url路由系统如何理解django中url路由系统,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对于高质量的Web

    攻略 2021年10月21日
  • css实现任意图片垂直居中的方法有哪些

    技术css实现任意图片垂直居中的方法有哪些这篇文章主要讲解了“css实现任意图片垂直居中的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css实现任意图片垂直居

    攻略 2021年11月18日
  • 龙虾怎么洗简单又干净,怎样杀小龙虾,洗小龙虾

    技术龙虾怎么洗简单又干净,怎样杀小龙虾,洗小龙虾小龙虾清洗起来很麻烦,特别是那两个大钳子很具有威慑力,让人都不知道该怎么拿捏清洗龙虾怎么洗简单又干净。 步骤如下:
    1、先盐水养半小时很多龙虾生存的水域都不太干净,而且龙

    生活 2021年10月30日
  • jquery浏览器怎么设置宽度(jquery设置等于浏览器的宽度)

    技术jquery如何求浏览器宽度小编给大家分享一下jquery如何求浏览器宽度,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月13日
  • 暴龙太阳镜官方网站,雷德蒙暴龙眼镜代言人是谁

    技术暴龙太阳镜官方网站,雷德蒙暴龙眼镜代言人是谁暴龙更好暴龙太阳镜官方网站。 我自己更喜欢暴龙的外观,看着很时尚,然后多大气的,好几副都是它家的,戴着很舒服,摭光也蛮不错的,用了有两年了吧,没有出问题过。 暴

    生活 2021年10月21日
  • oracle merge into用法(oracle awr性能分析报告)

    技术Oracle sharding database的示例分析这篇文章主要为大家展示了“Oracle sharding database的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一

    攻略 2021年12月13日