Momento da Imagem
M pq = def ∑ x ∑ yxpyq I (x, y) M_ {pq} \ xlongequal {def} \ sum_x \ sum_y x ^ py ^ q I (x, y) Mpqd e fxΣYΣxp yq I(x,y )
então o centroide da imagem é
(x, y) = (M 10 M 00, M 01 M 00) (x, y) = \ left (\ frac {M_ {10}} {M_ {00}}, \ frac {M_ {01}} {M_ {00}} \ right)( x ,e )=(M0 0M1 0,M0 0M0 1)
computar momentos em python:
M = cv2.moments(c)
referência: momento da imagem
Detecção Canny Edge
um algoritmo de múltiplos estágios
- Redução de ruído
- Filtro Gaussiano
- Encontrando o Gradiente de Intensidade da Imagem
- filtre com Sobel Kernel na direção horizontal e vertical para obter a primeira derivada na direção horizontal G x G_xGXe direção vética G e G_yGe
- G = G x 2 + G y 2 θ = arctan (G y G x) G = \ sqrt {G_x ^ 2 + G_y ^ 2} \\ \ theta = \ arctan \ left (\ dfrac {G_y} {G_x} \direita) G=Gx2+GY2θ=Arctan(GXGe)
- Supressão não máxima
- o que é: Supressão não máxima (NMS)
- Limiar de histerese
- o que é: Limiar Padrão e Histerese
- Precisamos de dois valores de limite, minVal e maxVal. Quaisquer arestas com gradiente de intensidade maior que maxVal certamente são arestas e aquelas abaixo de minVal certamente não são arestas, portanto, descartadas. Aqueles que estão entre esses dois limites são classificados como bordas ou não com base em sua conectividade. Se eles estiverem conectados a pixels de “borda certa”, eles serão considerados parte das bordas. Caso contrário, eles também são descartados.
OpenCV
edges = cv2.Canny(image, 100, 200)
referência: Canny Edge Detection