标签: hough-transform

OpenCV中概率Hough变换的具体实现是什么?

有没有人知道OpenCV实现中的概率Hough变换的特定算法?我的意思是,是否有关于算法的参考文件或文档?

为了得到这个想法,我当然可以查看源代码,但我想知道是否有任何关于它的文档. - 它不在源代码的注释中(OpenCV 1.0).

谢谢!

-斤

opencv hough-transform

6
推荐指数
2
解决办法
5610
查看次数

圆形霍夫变换改进

我正在研究虹膜识别算法,该算法将这些类型的图像处理成用于识别和认证目的的唯一代码.

在过滤,智能阈值处理,然后在图像中找到边缘之后,下一步显然是将圆圈与瞳孔和虹膜拟合.我环顾四周使用的技术是圆形霍夫变换.这是我实现的代码.对于神秘的变量名称感到抱歉.

print "Populating Accumulator..."
# Loop over image rows
for x in range(w):
    # Loop over image columns
    for y in range(h):
        # Only process black pixels
        if inp[x,y] == 0:
            # px,py = 0 means pupil, otherwise pupil center
            if px == 0:
                ra = r_min
                rb = r_max
            else:
                rr = sqrt((px-x)*(px-x)+(py-y)*(py-y))
                ra = int(rr-3)
                rb = int(rr+3)
            # a is the width of the image, b is the height
            for _a in range(a):
                for …
Run Code Online (Sandbox Code Playgroud)

algorithm hough-transform

6
推荐指数
1
解决办法
1218
查看次数

HoughCircles用于识别球的参数

通过将图像转换为灰度然后模糊处理图像后,我正在尝试使用以下参数应用霍夫圆变换:

  • CV_HOUGH_GRADIENT
  • dp = 1
  • min_dist = 1
  • param_1 = 70
  • param_2 = 100
  • min_radius = 0
  • max_radius = 0

这是我尝试过的众多图片之一:http: //i.stack.imgur.com/JGRiM.jpg

但即使参数放松,算法也无法识别球.

(当我用GIMP中创建的圆圈图像尝试它时效果很好)

opencv hough-transform

6
推荐指数
2
解决办法
7769
查看次数

我怎么能诡异地使用opencv在图像中找到一个篮球?

我一直在研究一个关于如何在图像中找到简单篮球的宠物项目.在过去的几周里,我尝试了一些使用hough.circles和转换等的排列,但我似乎无法将代码示例和我自己的修补程序隔离开来.

这是一张示例照片: 篮球的男孩 这是一个简单版本的圆形查找代码之后的结果我一直在修补: houghcircle变换圈寻找

任何人都知道我哪里出错了,我怎么能把它弄好?

这是我摆弄的代码:

import cv2
import cv2.cv as cv # here
import numpy as np

def draw_circles(storage, output):
    circles = np.asarray(storage)
    for circle in circles:
        Radius, x, y = int(circle[0][3]), int(circle[0][0]), int(circle[0][4])
        cv.Circle(output, (x, y), 1, cv.CV_RGB(0, 255, 0), -1, 8, 0)
        cv.Circle(output, (x, y), Radius, cv.CV_RGB(255, 0, 0), 3, 8, 0)

 orig = cv.LoadImage('basket.jpg')
 processed = cv.LoadImage('basket.jpg',cv.CV_LOAD_IMAGE_GRAYSCALE)
 storage = cv.CreateMat(orig.width, 1, cv.CV_32FC3)
 #use canny, as HoughCircles seems to prefer ring like circles to filled ones.
 cv.Canny(processed, processed, …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy image-processing hough-transform

6
推荐指数
1
解决办法
2311
查看次数

使用GPUImage和GPUImageHoughTransformLineDetector检测突出显示的文本边界框

我正在使用GPUImageHoughTransformLineDetector来尝试检测图像中突出显示的文本:

在此输入图像描述

我使用以下代码来尝试检测边界蓝框线:

GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:rawImage];
GPUImageHoughTransformLineDetector *lineFilter = [[GPUImageHoughTransformLineDetector alloc] init];
[stillImageSource addTarget:lineFilter];
GPUImageLineGenerator *lineDrawFilter = [[GPUImageLineGenerator alloc] init];
[lineDrawFilter forceProcessingAtSize:rawImage.size];

__weak typeof(self) weakSelf = self;
[lineFilter setLinesDetectedBlock:^(GLfloat *flt, NSUInteger count, CMTime time) {
    NSLog(@"Number of lines: %ld", (unsigned long)count);
    GPUImageAlphaBlendFilter *blendFilter = [[GPUImageAlphaBlendFilter alloc] init];
    [blendFilter forceProcessingAtSize:rawImage.size];
    [stillImageSource addTarget:blendFilter];
    [lineDrawFilter addTarget:blendFilter];

    [blendFilter useNextFrameForImageCapture];
    [lineDrawFilter renderLinesFromArray:flt count:count frameTime:time];
    weakSelf.doneProcessingImage([blendFilter imageFromCurrentFramebuffer]);
}];
[stillImageSource processImage];
Run Code Online (Sandbox Code Playgroud)

无论edgeThreshold还是1023行,每次运行此命令时,结果输出如下所示:

在此输入图像描述

我不清楚为什么改变门槛没有做任何事情,但我确信我误解了一些事情.任何人对如何做到这一点有任何想法?

gpu objective-c hough-transform ios gpuimage

6
推荐指数
1
解决办法
1595
查看次数

在OpenCV C++中将车牌标准化为OCR

我正在做一些简单的OCR车牌识别系统.我正在使用HaarCascades找到车牌,然后我需要将这个盘子标准化,将其放入我的OCR模块中.我正在使用填充物找到汽车板的主要轮廓,然后我执行霍夫变换,找到汽车板的上下边界:

floodfill

踝关节

这是代码的一部分,我执行Hough变换^

HoughLinesP(canny_img, lines, 1, CV_PI/180, 80, 80, 30 );

    for ( size_t i = 0; i < lines.size(); i++ ) {  
        line (output, Point(lines[i][0], lines[i][3]), Point(lines[i][4], lines[i][5]), Scalar(0,0,255), 1, 8 );
    }
Run Code Online (Sandbox Code Playgroud)

现在我需要沿着这两条线切割和旋转这张照片.我怎样才能做到这一点?我明白我需要使用点Point(lines [i] [0]).. Point(第i行),但是我应该用它们做什么?

所以基本上,我需要得到类似的东西:

  1. 图像,我使用HaarCascades

在此输入图像描述

  1. 经过一些转变,我需要得到这样的东西: 在此输入图像描述

所以在第一步我只需要削减上下边界.

c++ ocr opencv hough-transform

6
推荐指数
1
解决办法
1535
查看次数

霍夫圆圈没有检测到眼睛虹膜

我想用Hough Circle算法检测眼睛虹膜及其中心.

我正在使用此代码:

 private void houghCircle()
    {
        Bitmap obtainedBitmap = imagesList.getFirst();
                 /* convert bitmap to mat */
        Mat mat = new Mat(obtainedBitmap.getWidth(),obtainedBitmap.getHeight(),
                CvType.CV_8UC1);
        Mat grayMat = new Mat(obtainedBitmap.getWidth(), obtainedBitmap.getHeight(),
                CvType.CV_8UC1);


        Utils.bitmapToMat(obtainedBitmap, mat);

/* convert to grayscale */
        int colorChannels = (mat.channels() == 3) ? Imgproc.COLOR_BGR2GRAY : ((mat.channels() == 4) ? Imgproc.COLOR_BGRA2GRAY : 1);

        Imgproc.cvtColor(mat, grayMat, colorChannels);

/* reduce the noise so we avoid false circle detection */
        Imgproc.GaussianBlur(grayMat, grayMat, new Size(9, 9), 2, 2);

// accumulator value
        double …
Run Code Online (Sandbox Code Playgroud)

android opencv image-processing hough-transform eye-detection

6
推荐指数
1
解决办法
1090
查看次数

测量带有opencv的远心单色相机拍摄的金属零件孔的直径图片

设定:

  • 相机:Blackfly S Mono 20.0 MP
  • 镜头:光远心镜头TC23080
  • 灯:16个绿色LED
  • 的Python:3.7.3
  • openCV:4.0以上

图片链接很抱歉,但是一张图片大约20MB,也不想丢失任何质量

图片样本:

https://drive.google.com/file/d/11PU-5fzvSJt1lKlmP-lQXhdsuCJPGKbN/view?usp=sharing https://drive.google.com/file/d/1B3lSFx8YvTYv3hzuuuYtphoHBuyEdc4o/view

案例:会有大小从5x5到10x10的不同形状的金属零件。在这些金属零件内部,有许多2至10〜的圆形孔,必须非常准确地检测到。孔的实际大小是未知的,因为可能的零件种类繁多。目的是使用OpenCV编写通用算法,该算法可与任何金属零件配合使用并检测圆形孔。

我们尝试过的方法:我们尝试使用HoughCircles算法检测孔,但几乎没有成功。该算法过于敏感,或者根本无法检测到孔。我们已经尝试了不同的param1和param2值,但没有成功。在使用HoughCircles之前,我们还尝试过使图像模糊并通过Canny,但是这种方法并未产生更好的结果。对于较低分辨率的图片,完全相同的算法效果更好。但是,不能牺牲分辨率,因为精度在此项目中极为重要。

https://drive.google.com/file/d/1TRdDbperi37bha0uJVALS4C2dBuaNz6u/view?usp=sharing

使用以下参数检测到上述圆圈:

minradius=0
maxradius=0
dp=1
param1=100
param2=21
Run Code Online (Sandbox Code Playgroud)

通过使用以上参数,我们几乎可以获得所需的结果。当我们对不同的图片使用相同的参数时,就会出现问题。

我们想要得到的最终结果是给定圆的直径具有很高的精度,并且我们希望在不同的零件图片上可以使用相同的算法

使这个问题与其他发布的问题不同的原因是,我们不知道给定圆的近似半径(因此我们无法操纵minradius,maxradius,param1,param2或任何其他值)。

python opencv image-processing computer-vision hough-transform

6
推荐指数
1
解决办法
259
查看次数

霍夫线变换以查找图像中的多边形

我试图找到下图中的所有多边形(包括填充的多边形)。目前,我正在尝试使用Hough Transform来完成此操作,但它没有检测到图像中的所有线条。此外,由于线条有多宽,它会将每条线条计数两次。有没有办法对图像应用一些过滤器以使霍夫变换性能更好,或者是否有一种完全不同的方法来找到我丢失的多边形?谢谢!

这是我正在处理的图片,

我的代码如下。

import cv2
import numpy as np

img = cv2.imread('test.png')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray,50,150,apertureSize = 3)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(edges,1,np.pi/180,100,minLineLength,maxLineGap)
for num in range (0, len(lines)):
    for x1,y1,x2,y2 in lines[num]:
        cv2.line(img,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imwrite('houghlines.jpg',img)
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision hough-transform canny-operator

5
推荐指数
1
解决办法
1627
查看次数

即使图像在Python中的OpenCV中包含许多行,Hough Line Transform也只识别一行

我在OpenCV中使用拉普拉斯变换进行边缘检测,然后使用霍夫线变换检测其中的线.这些识别的线最终需要从图像中移除.

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('Feb_16-0.jpg',0)
kernel = np.ones((1,1),np.uint8)
opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
blur = cv2.GaussianBlur(opening,(1,1),0)
ret3,th4 = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU) 
laplacian = cv2.Laplacian(th4,cv2.CV_8UC1)
cst = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
minLineLength = 100
maxLineGap = 10
lines = cv2.HoughLinesP(laplacian,1,np.pi/180,100,minLineLength,maxLineGap)
for x1,y1,x2,y2 in lines[0]:
    cv2.line(cst,(x1,y1),(x2,y2),(0,255,0),2)

cv2.imwrite('houghlines5.jpg',cst)
Run Code Online (Sandbox Code Playgroud)

我期望找出条例草案中的所有内容: 互联网法案

拉普拉斯边缘检测的结果如下:

边缘检测结果

而Hough Line Transform返回的结果只标识了下图中绿线所标记的一条线: 转型互联网法案

任何人都可以帮我弄清楚代码中需要进行哪些修改,以便识别出互联网法案的所有大胆的横向/纵向线?

python opencv image-processing computer-vision hough-transform

5
推荐指数
1
解决办法
3815
查看次数