Python - T.Hough círculos

 
Vista:

T.Hough círculos

Publicado por Geomata (21 intervenciones) el 12/01/2021 10:11:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
from skimage import data,color
from skimage.transform import hough_circle, hough_circle_peaks
from skimage.feature import canny
from skimage.draw import circle_perimeter
from skimage.util import img_as_ubyte
 
image = mpimg.imread('Bodega.jpg')
img = np.copy(image)
img2 = np.copy(image)
gray     = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
blurred  = cv2.GaussianBlur(gray, (5,5), 20)
circles  = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, 2, 200, param1=100, param2=90, minRadius=20, maxRadius=150)
for i in circles[0,:]:
    cv2.circle(img, (i[0], i[1]), i[2], (0,255,0), 2)
    cv2.circle(img, (i[0],i[1]), 3, (255,0,0), 5);
 
 
plt.figure(figsize=(12,12))
plt.imshow(img);
plt.title('CV2');
 
#con skimage
bordes = canny(blurred,sigma=3,low_threshold=50,high_threshold=90)
hough_radii =np.arange(50,150,1)
hough_res = hough_circle(bordes,hough_radii)
accums,cx,cy,radii = hough_circle_peaks(hough_res,hough_radii,total_num_peaks=8)
for center_y, center_x, radius in zip(cy, cx, radii):
    circy, circx = circle_perimeter(center_y, center_x, radius,
                                    shape=img2.shape)
    img2[circy, circx] = (0, 255, 0)
 
plt.figure(figsize=(12,12))
plt.imshow(img2);
plt.title('SKIMAGE');
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder