Edge detector » Histórico » Versão 4
Henrique Wanner Antunes Silvério de Sousa, 02/10/2021 01:07 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! |