Edge detector » Histórico » Versão 5
Henrique Wanner Antunes Silvério de Sousa, 02/10/2021 01:18 h
1 | 1 | Henrique Wanner Antunes Silvério de Sousa | h1. Edge detector(bordas laterais) |
---|---|---|---|
2 | |||
3 | De início temos o tratamento da imagem usando o cv2. Queremos no final do tratamento obter o "edges.jpg" que seria a imagem apresentando somente as bordas. Tal como mostrado no exemplo a seguir: |
||
4 | 2 | Henrique Wanner Antunes Silvério de Sousa | |
5 | |||
6 | !edge.png! |
||
7 | 3 | Henrique Wanner Antunes Silvério de Sousa | |
8 | Com a imagem das bordas já prontas, vamos encontrar todas as retas, no código denominadas linhas, que encontrarmos. |
||
9 | |||
10 | Perceba que no primeiro momento temos o uso da função _cv2.HoughLinesP_ . Ela retorna dois pontos de cada linha ( x1, y1, x2, y2) e guarda em um array: |
||
11 | |||
12 | !hough.png! |
||
13 | |||
14 | Tendo dois pontos de cada linha, vamos guardar o coeficiente angular e linear e também o angulo em um array: _linha_poly_: |
||
15 | obs: |
||
16 | x1 = linhas[i][0][0] |
||
17 | y1 = linhas[i][0][1] |
||
18 | x2 = linhas[i][0][2] |
||
19 | y2 = linhas[i][0][3] |
||
20 | linha_poly = ( (y2-y1)/(x2-x1), (y2-y1)/(x2-x1)*x1, linhas[i][0]) |
||
21 | !poly.png! |
||
22 | Vamos agora caracterizar quais linhas estão a direita e quais estão a esquerda, utilizando o ângulo de inclinação e fazend |
||
23 | |||
24 | ang = (180/pi)*arctg((y2-y1)/(x2-x1)) |
||
25 | |||
26 | !ang.png! |