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

温州营销网站公司网站如何做快捷支付接口

温州营销网站公司,网站如何做快捷支付接口,做外贸网站价格,如何设计一个网页挂到百度上OpenCV-Python中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行#xff0c;如果要检测的形状可以用数学表达式描述#xff0c;就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使… OpenCV-Python中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行如果要检测的形状可以用数学表达式描述就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使用。 霍夫直线变换 Hough直线变换可以检测一张图像中的直线cv2.HoughLines(image, rho, theta, threshold) return返回值就是 ρ θ。 ρ 的单位是像素 θ 的单位是弧度。image是一个二值化图像所以在进行霍夫变换之前要首先进行二值化或者进行Canny 边缘检测。rho代表 ρ 的精确度。theta代表θ 的精确度。threshold阈值只有累加其中的值高于阈值时才被认为是一条直线也可以把它看成能检测到的直线的最短长度以像素点为单位。 cv2.HoughLinesP(image: Mat, rho, theta, threshold, lines…, minLineLength…, maxLineGap…) return 返回值就是直线的起点和终点(x1,y1,x2,y2)。rho代表 ρ 的精确度。theta代表θ 的精确度。threshold阈值只有累加其中的值高于阈值时才被认为是一条直线也可以把它看成能检测到的直线的最短长度以像素点为单位。minLineLength直线的最短长度。比这个短的线都会被忽略。maxLineGap- 两条线段之间的最大间隔如果小于此值这两条直线就被看成是一条直线。 一条直线可以用数学表达式 y mx c 或者 ρ x cos θ y sin θ 表示。ρ 是从原点到直线的垂直距离 θ 是直线的垂线与横轴顺时针方向的夹角如果使用的坐标系不同方向也可能不同这里是按 OpenCV 使用的坐标系描述的。如下图所示 import numpy as np import cv2 from matplotlib import pyplot as pltimg cv2.imread(./resource/opencv/image/sudoku.png, cv2.IMREAD_COLOR) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) edges cv2.Canny(gray, 50, 150, apertureSize3)lines cv2.HoughLines(edges, 1, np.pi/180, 200)for i in range(len(lines)): # for rho, thetha in lines[10]:rho lines[i][0][0]thetha lines[i][0][1]a np.cos(thetha)b np.sin(thetha)x0 a*rhoy0 b*rholine_length 1000 # 线长x1 int(x0 line_length*(-b))y1 int(y0 line_length*(a))x2 int(x0 - line_length*(-b))y2 int(y0 - line_length*(a))cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 1)# 因为gray和edges都是单通道的为了可以和原图拼接合并需要merge成3通道图像数据 gray cv2.merge((gray, gray, gray)) edges cv2.merge((edges,edges,edges))# 图像拼接 res np.hstack((gray,edges,img))cv2.imshow(res, res) cv2.waitKey(0) cv2.destroyAllWindows()渐进概率式霍夫变换 cv2.HoughLinesP(image: Mat, rho, theta, threshold, lines…, minLineLength…, maxLineGap…) import numpy as np import cv2 from matplotlib import pyplot as pltimg cv2.imread(./resource/opencv/image/sudoku.png, cv2.IMREAD_COLOR) gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) canny cv2.Canny(gray, 50, 150, apertureSize3)minLineLength 100 maxLineGap 10 # HoughLinesP(image: Mat, rho, theta, threshold, lines..., minLineLength..., maxLineGap...) lines cv2.HoughLinesP(canny, 1, np.pi/180, 100, minLineLength, maxLineGap)print(lines.shape) print(lines[0])for i in range(len(lines)):for x1,y1,x2,y2 in lines[i]:cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 1)gray cv2.merge((gray, gray, gray)) canny cv2.merge((canny,canny,canny))res np.hstack((gray, canny, img)) cv2.imshow(res, res) cv2.waitKey(0) cv2.destroyAllWindows()在含有坐标点集合中寻找是否存在直线 cv2.HoughLinesPointSet(_point, lines_max, threshold, min_rho, max_rho, rho_step, min_theta, max_theta, theta_step, _lines…) _point输入点的集合必须是平面内的2D坐标数据类型必须是CV_32FC2或CV_32SC2。lines_max检测直线的最大数目。threshold累加器的阈值即参数空间中离散化后每个方格被通过的累计次数大于阈值时则被识别为直线否则不被识别为直线。min_rho检测直线长度的最小距离以像素为单位。max_rho检测直线长度的最大距离以像素为单位。rho_step以像素为单位的距离分辨率即距离 离散化时的单位长度。min_theta检测直线的最小角度值以弧度为单位。max_theta检测直线的最大角度值以弧度为单位。theta_step以弧度为单位的角度分辨率即夹角 离散化时的单位角度。_lines在输入点集合中可能存在的直线每一条直线都具有三个参数分别是权重、直线距离坐标原点的距离 和坐标原点到直线的垂线与x轴的夹角 。 霍夫圆环变换 圆形的数学表达式为 (x − xcenter)2(y − ycenter)2 r2其中 xcenter,ycenter为圆心的坐标 r 为圆的直径。从这个等式中我们可以看出一个圆环需要 3个参数来确定。所以进行圆环霍夫变换的累加器必须是 3 维的这样的话效率就会很低。所以 OpenCV 用来一个比较巧妙的办法霍夫梯度法它可以使用边界的梯度信息。cv2.HoughCircles(image, method, dp, minDist, circles…, param1…, param2…, minRadius…, maxRadius…) return存储检测到的圆的输出矢量。image输入图像数据类型一般用Mat型即可需要是8位单通道灰度图像method使用的检测方法cv2.HOUGH_GRADIENTcv2.HOUGH_GRADIENT_ALT。dpdouble类型的dp用来检测圆心的累加器图像的分辨率于输入图像之比的倒数且此参数允许创建一个比输入图像分辨率低的累加器。上述文字不好理解的话来看例子吧。例如如果dp 1时累加器和输入图像具有相同的分辨率。如果dp2累加器便有输入图像一半那么大的宽度和高度。minDist为霍夫变换检测到的圆的圆心之间的最小距离。circles可以忽略存储检测到的圆的输出矢量。param1它是第三个参数method设置的检测方法的对应的参数。它表示传递给canny边缘检测算子的高阈值而低阈值为高阈值的一半。param2也是第三个参数method设置的检测方法的对应的参数它表示在检测阶段圆心的累加器阈值。它越小的话就可以检测到更多根本不存在的圆而它越大的话能通过检测的圆就更加接近完美的圆形了。minRadius表示圆半径的最小值。maxRadius表示圆半径的最大值。 import numpy as np import cv2img cv2.imread(./resource/opencv/image/logo/opencv-logo2.png, cv2.IMREAD_GRAYSCALE) img cv2.medianBlur(img, 5) cimg cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)circles cv2.HoughCircles(img, cv2.HOUGH_GRADIENT, 1, 20, param150, param230, minRadius30, maxRadius0)print(circles) circles np.uint16(circles) print(circles)for i in circles[0, :]:cv2.circle(cimg, (i[0], i[1]), i[2], (0, 255, 0), 2)cv2.circle(cimg, (i[0], i[1]), 2, (0, 0, 255), 3)cv2.imshow(detected circles, cimg) cv2.waitKey(0) cv2.destroyAllWindows()
http://www.w-s-a.com/news/915186/

相关文章:

  • 做画册找什么网站海南建设工程股份有限公司网站
  • 网站机房建设有助于网站备案
  • 北辰苏州网站建设抖音代运营投诉平台
  • 安徽住房与城乡建设部网站如何新建站点
  • 企业网站开发的感想网站开发公司所需投入资源
  • 如何拿网站后台账号wordpress 电影下载站源码
  • 公司网站建设方案书安卓应用市场免费下载安装
  • phpmysql网站设计建设好一个网站需要
  • 自己做的网站能被别人看到吗idea怎么做网页
  • 燕莎网站建设互联网排名前十的公司2021
  • 微软云怎么做网站微商城和小程序区别
  • 哈尔滨建站的系统网站到首页排名
  • 运动网站开发的需求分析南通市住房和城乡建设局网站
  • 佘山做网站谷歌云做网站
  • 免费发布信息网站大全666做p2p网站费用
  • 北京 网站建设咨询顾问公司网络公司有几家
  • 设计类网站如何用ps做网站首页
  • 品牌网站建设的关键事项设计网有哪些
  • 网站没收录徐州建设工程审图中心网站
  • 网站建设记账做什么科目erp系统有哪些软件
  • 泰拳图片做网站用哪里有做空包网站的
  • 查外链网站重庆做网站微信的公司
  • 有没有外包活的网站如何做网站快捷键的元素
  • 公司网站赏析网站制作2019趋势
  • 企业进行网站建设的方式有( )推广引流违法吗
  • 按营销型网站要求重做网站 费用点金网站建设
  • 深圳做网站互联网服务
  • 网站sem托管wordpress安装无法连接数据库
  • 深圳网站建设开发公司哪家好微信小程序商家入口
  • 江门站排名优化建立什么网站赚钱