霍夫变换绘制出图案里的直线

简介: 霍夫变换绘制出图案里的直线

Hough变换是图像处理中从图像中识别几何形状的基本方法之一。Hough变换的基本原理在于利用点与线的对偶性;应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线(线段)。 霍夫变换于1962年由Paul Hough 首次提出;1972年由Richard Duda和Peter Hart推广;


#-- coding: utf-8 -- """

Created on Sat Jan 18 15:30:10 2014 @author: duan """ #-- coding: utf-8 --

"""

Created on Sat Jan 18 19:38:31 2014

@author:

"""


#绘制出图案里面的直线

import cv2

import numpy as np

img = cv2.imread('five.jpeg')

gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) --注 cvtColor用于将图像从一个颜色空间转换到另一个颜色空间的转换;常见的颜色空间均支持;在转换的过程中能够保证转换后的图像的数据类型和位深与源图像一致;

edges = cv2.Canny(gray,50,150,apertureSize = 3) --canny边缘检测算法

lines = cv2.HoughLines(edges,1,np.pi/180,200) HoughLines()函数可以找出采用标准霍夫变换的二值图像线条;来调用标准霍夫变换SHT和多尺度霍夫变换MSHT的OpenCV内建算法。


print((lines)) --绘制出线段 for linei in lines:


for rho,theta in linei:
    a = np.cos(theta)
    b = np.sin(theta)
    x0 = a*rho
    y0 = b*rho
    x1 = int(x0 + 1000*(-b))
    y1 = int(y0 + 1000*(a))
    x2 = int(x0 - 1000*(-b))
    y2 = int(y0 - 1000*(a))
    cv2.line(img,(x1,y1),(x2,y2),(255,0,0),2)
    --绘制线段的函数
复制代码

cv2.imwrite('houghlines3.jpg',img) --图像的保存



相关文章
|
2月前
|
算法 计算机视觉
OpenCV(三十七):拟合直线、三角形和圆形
OpenCV(三十七):拟合直线、三角形和圆形
137 0
|
5天前
|
索引
绘制轮廓
【6月更文挑战第25天】绘制轮廓。
6 1
|
2月前
|
Python
绘制直线
【5月更文挑战第11天】绘制直线。
21 1
|
7月前
|
计算机视觉 Python
OpenCV中绘制圆和直线
要在OpenCV中绘制圆和直线,可以使用以下方法: 1. 导入所需库:
39 1
|
2月前
|
计算机视觉
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
OpenCV(十三):图像中绘制直线、圆形、椭圆形、矩形、多边形和文字
53 0
|
2月前
|
算法
[Halcon&拟合] 直线、矩形和圆的边缘提取
[Halcon&拟合] 直线、矩形和圆的边缘提取
243 0
|
存储 API 图形学
OpenCV_11 轮廓检测:图像的轮廓+绘制轮廓+轮廓近似+边界矩形+椭圆拟合+直线拟合
轮廓检测指检测图像中的对象边界,更偏向于关注上层语义对象。如OpenCV中的findContours()函数, 它会得到每一个轮廓并以点向量方式存储,除此也得到一个图像的拓扑信息,即一个轮廓的后一个轮廓、前一个轮廓等的索引编号。
1280 0
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
106 0
五、OpenCV绘制线、矩形、圆等基本几何形状