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)

相关推荐

  • 蘑菇定律,成也细节,败也细节讲的是什么

    技术蘑菇定律,成也细节,败也细节讲的是什么1.奥格尔维定律:善用比我们自己更优秀的人 2.光环效应:全面正确地认识人才 3.不值得定律:让员工选择自己喜欢做的工作 4.蘑菇管理定律:尊重人才的成长规律 5.贝尔效应:为有

    生活 2021年10月30日
  • 如何停止weblogicserver应用(weblogicserver是什么)

    技术新部署的WebLogicServer无法访问怎么解决本篇内容主要讲解“新部署的WebLogicServer无法访问怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“新

    攻略 2021年12月21日
  • Linux三剑客命令—awk

    技术Linux三剑客命令—awk Linux三剑客命令—awk一、概念说明
    官方概念说明:gawk - pattern scanning and processing language
    模式扫描和处理文

    礼包 2021年12月23日
  • Navicat如何生成更新数据库结构同步的数据库

    技术Navicat如何生成更新数据库结构同步的数据库小编给大家分享一下Navicat如何生成更新数据库结构同步的数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让

    攻略 2021年11月23日
  • 在Linux命令行里如何与其他用户通信

    技术在Linux命令行里如何与其他用户通信这篇文章将为大家详细讲解有关在Linux命令行里如何与其他用户通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。wallwall 命令(意为

    攻略 2021年11月20日
  • 怎么解决nginx php-cgi 自动关闭问题

    技术怎么解决nginx php-cgi 自动关闭问题这篇文章主要介绍“怎么解决nginx php-cgi 自动关闭问题”,在日常操作中,相信很多人在怎么解决nginx php-cgi 自动关闭问题问题上存在疑惑,小编查阅

    攻略 2021年10月26日