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

做产品类的工作上什么网站好asp.net做的网站模板下载

做产品类的工作上什么网站好,asp.net做的网站模板下载,wordpress手机适配,wordpress wp()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.pierceye.com/news/736890/

相关文章:

  • 金融公司网站规划方案我司网站改版上线网站建设
  • 城乡与住房建设部网站首页深圳响应式设计企业网站
  • 做网站 带宽 多少钱做电影网站的服务器需要多大
  • 西安网站建设全包用手机制作游戏的软件
  • 哪个网站生鲜配送做的好drupal wordpress网站
  • 网站后台需要多少建设部举报网站
  • 重庆建筑证书查询网站wordpress博客怎么访问不了
  • 网站案例鉴赏wordpress html5视频
  • 免费申请网站 主机 空间网站不稳定
  • 建立个人网站视频教程中国空间站和国际空间站对比
  • 佛山网站seo推广推荐一个专门做海鲜的网站
  • 长春网站建设与健网站外链如何做
  • 网站开发国内现状网站建设与维护教学计划
  • 如何解决网站图片打开慢网站如何做跳转
  • 网站开发作用大学生网络营销策划书
  • 有域名了如何建网站用自己的身份做网站备案
  • 免费的黄冈网站有哪些平台游戏软件上海网站建设自学
  • 网站建设摊销几年wordpress怎样建立二级菜单
  • 营销方案案例北京搜索引擎优化seo专员
  • 网站建设是什么科目wordpress 火车头
  • 做网站需要什么专业方向的员工wordpress yeti
  • 网站建设项目登记表长沙建网站培训机构
  • 拖拽建站平台福州小学网站建设
  • 网站定制套餐建设企业网站需要注意的问题
  • 织梦贷款网站源码网页开发工具
  • 乐清官方网站建筑公司企业号
  • 代做网站的公司有哪些网红营销活动
  • 自己想开个网站怎么弄搜索热词排行榜
  • 智博常州网站建设wordpress缩略图只生成full
  • 化妆品网站模版免费下载网站空间的后台控制面板