当前位置: 首页 > news >正文

凡客建站登陆百度关键词价格查询软件

凡客建站登陆,百度关键词价格查询软件,网站seo怎么填写,贴心网络推广方法1.检测直线的霍夫变换原理 2.检测直线函数HoughLines() 检测直线流程: Step1:将参数空间的坐标轴离散化。 Step2:将图像中每个非0像素通过映射关系求取在参数空间通过的方格 Step3:统计参数空间内每个方格出现的次数,选取次数大于某一值的方格作为表示直线的方格…

1.检测直线的霍夫变换原理

2.检测直线函数HoughLines()

检测直线流程:

Step1:将参数空间的坐标轴离散化。

Step2:将图像中每个非0像素通过映射关系求取在参数空间通过的方格

Step3:统计参数空间内每个方格出现的次数,选取次数大于某一值的方格作为表示直线的方格

Step4:将参数空间中表示直线的方格的参数作为图像中直线的参数

void cv::HoughLines ( InputArray image

OutputArray lines,

double   rho,

double   theta,

int          threshold.

double   srn = 0,

double    stn =0,

double   min_theta = 0,

double    max_theta = CV_PI

)

参数说明:

  • image:输入的二值图像,通常是经过边缘检测后的图像。
  • lines:输出参数,包含检测到的直线的向量。
  • rho:极径参数ρ的精确度,以像素为单位。
  • theta:角度参数θ的精确度,以弧度为单位。
  • threshold:参数空间中投票阈值,用于确定检测到的直线。
  • srn、stn、min_theta、max_theta:这些参数是可选的,用于进一步细化直线检测的精度和范围。

示例代码:

void drawLine(Mat &img,//要标记直线的图像vector<Vec2f> lines,//检测的直线数据double rows,//原图像的行数(高)double cols,//原图像的列数(宽)Scalar scalar,//绘制直线的颜色int n//绘制直线的线宽){Point pt1,pt2;for(size_t i=0;i<lines.size();i++){float rho=lines[i][0];//直线距离坐标原点的距离float theta=lines[i][1];//直线过坐标原点垂线double a=cos(theta);//夹角的余弦值double b=sin(theta);//夹角的正弦值double x0=a*rho,y0=b*rho;//直线与坐标原点的垂线的交点double length=max(rows,cols);//图像高宽的最大值//计算直线上的一点pt1.x= cvRound(x0+length*(-b));pt1.y= cvRound(y0+length*(a));//计算直线上的另一点pt2.x= cvRound(x0-length*(-b));pt2.y= cvRound(y0-length*(a));//两点绘制一条直线line(img,pt1,pt2,scalar,n);}
}
//霍夫直线检测
void Hough_linear_detection(Mat image){Mat gray;cvtColor(image,gray,COLOR_BGR2GRAY);Mat edge;//检测边缘图像,并二值化Canny(gray,edge,80,180,3, false);//用不同的累加器进行检测直线vector<Vec2f> lines1,lines2;HoughLines(edge, lines1,1,CV_PI/180,50,0,0);HoughLines(edge, lines2,1,CV_PI/180,150,0,0);//在原图像中绘制直线Mat img1,img2;image.copyTo(img1);image.copyTo(img2);drawLine(img1,lines1,edge.rows,edge.cols,Scalar(255),2);drawLine(img2,lines2,edge.rows,edge.cols,Scalar(255),2);//显示图像imwrite("/sdcard/DCIM/edge.png",edge);imwrite("/sdcard/DCIM/img1.png",img1);imwrite("/sdcard/DCIM/img2.png",img2);
}

Canny算子边缘检测后图片 :

用累加器为50进行检测直线:

用累加器为150进行检测直线:

3.检测直线函数 HoughLinesP()

void cv::HoughLinesP ( InputArray   image,

OutputArray lines,

double     rho,

double    theta,

int        threshold,

double   minLineLength =0,

double   maxLineGap = 0

)

  • image:待检测直线的原图像,必须是CV_8C的单通道二值图像
  • lines:霍夫变换检测到的直线输出量,每一条直线都由4个参数进行描述,分别是直线两个端点的坐标
  • rho:以像素为单位的距离分辨率。
  • theta: 以弧度为单位的角度分辨率
  • threshold:累加器的阈值
  • minLineLength: 直线的最小长度,当检测直线的长度小于该数值时将会被剔除
  • maxLineGap:允许将同一行两个点连接起来的最大距离。

示例代码:

//霍夫直线检测
void Hough_linearP_detection(Mat image){Mat gray;cvtColor(image,gray,COLOR_BGR2GRAY);Mat edge;//检测边缘图像,并二值化Canny(gray,edge,80,180,3, false);//利用渐进概率式霍夫变换提取直线vector<Vec4i> linesP1,linesP2;HoughLinesP(edge, linesP1,1,CV_PI/180,150,30,10);//两个点连接最大距离10HoughLinesP(edge, linesP2,1,CV_PI/180,150,30,30);//两个点连接最大距离30//绘制两个点连接最大距离10直线检测结果Mat img1;image.copyTo(img1);for(size_t i=0;i<linesP1.size();i++){line(img1,Point(linesP1[i][0],linesP1[i][1]),Point(linesP1[i][2],linesP1[i][3]),Scalar(255),3);}//绘制两个点连接最大距离30直线检测结果Mat img2;image.copyTo(img2);for(size_t i=0;i<linesP2.size();i++){line(img2,Point(linesP2[i][0],linesP2[i][1]),Point(linesP2[i][2],linesP2[i][3]),Scalar(255),3);}//显示图像imwrite("/sdcard/DCIM/img10.png",img1);imwrite("/sdcard/DCIM/img20.png",img2);
}

绘制两个点连接最大距离10直线检测结果:

绘制两个点连接最大距离30直线检测结果:

http://www.yidumall.com/news/16905.html

相关文章:

  • 有创意做网站找投资四川seo
  • 盐城网站开发效果百度站长平台
  • seo关键字优化软件如何做好关键词的优化
  • 营销型网站定位广告投放平台排名
  • 深圳做网站制作广告推广赚钱
  • 上海网站开发公司外包搜索大全浏览器
  • 重庆电力建设公司网站搜索引擎平台排名
  • 网站备案帐号是什么意思聊城seo
  • 网页设计共享网站重庆好的seo平台
  • wordpress网页效果seo比较好的公司
  • 做建材的网站有哪些北京网站优化快速排名
  • 如何一个空间做多个网站怎么看百度指数
  • 做网站电销话术百度在西安的公司叫什么
  • 网站建设流程策划书大数据培训
  • 幼儿园网站建设方案结语网络推广的概念
  • 沈阳三好街做网站公司最新营销模式有哪些
  • 网站建设中 怎么办昆明网络营销公司哪家比较好
  • 服务器ecs可以做网站吗百度快照入口官网
  • 重庆网站推广联系方式seo优化网站推广
  • 公司用员工信息做网站域名备案山东关键词网络推广
  • 做新闻网站犯法吗seo优化啥意思
  • 国外html5做的音乐网站免费写文章的软件
  • 网站制作素材现在做百度推广有用吗
  • 优秀网站首页seo关键词首页排名
  • 如何做网站的逻辑结构图线下推广活动策划方案
  • 网站qq访客获取网址检测
  • 班组建设网站百度推广怎么优化排名
  • 南昌做网站公司com域名注册
  • 网站开发需要学mvc吗宁波建站模板系统
  • 大型门户网站开发案例线下推广方式有哪些