python hough 변환 검 측 직선 실현 방법
2 검 측 절차
매개 변수 공간(ρ,θ) m*n 으로 계량 화ρ등분 수θ의 등분 수)개 단원 을 설정 하고 누산기 행렬 을 설정 하 며 초기 값 은 0 입 니 다.
그림 경계 에 있 는 모든 점(x,y)을 가 져 옵 니 다.ρ=xcosθ+ysinθ,모든 사람 을 구하 다θ대응했어ρ가치ρ화해시키다θ대응 하 는 단원 은 누적 기 를 1 로 추가 합 니 다.즉,Q(i,j)=Q(i,j)+1 입 니 다.
매개 변수 공간 에서 모든 누산기 의 값 을 검사 하고 누산기 의 가장 큰 단원 에 대응 하 는 것 을 검사 합 니 다.ρ화해시키다θ직각 좌표계 에서 직선 방정식 의 매개 변수 다.
3 인터페이스
image:2 값 그림,canny 테두리 검출 출력.여 기 는 result 입 니 다.
rho:픽 셀 단위 의 거리 정밀도,여 기 는 1 픽 셀 입 니 다.검 측 할 선분 이 더 많 으 면 0.1 로 설정 할 수 있다.
theta:라디안 단위 의 각도 정밀도,여 기 는 numpy.pi/180 입 니 다.검 측 할 라인 이 더 많 으 면 0.01*numpy.pi/180 으로 설정 할 수 있 습 니 다.
threshod:한도 값 매개 변수,int 유형,설정 한도 값 을 초과 해 야 선분 이 검출 되 고 여 기 는 10 입 니 다.
minLine Length:선분 은 픽 셀 단위 의 최소 길이 입 니 다.
max Line Gap:같은 방향 에서 두 라인 은 한 라인 의 최대 허용 간격 으로 판정 합 니 다.
4 코드 및 결과
import os
import numpy as np
import cv2
from PIL import Image, ImageEnhance
import math
def img_processing(img):
#
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)
# canny
edges = cv2.Canny(binary, 50, 150, apertureSize=3)
return edges
def line_detect(img):
img = Image.open(img)
img = ImageEnhance.Contrast(img).enhance(3)
# img.show()
img = np.array(img)
result = img_processing(img)
#
lines = cv2.HoughLinesP(result, 1, 1 * np.pi/180, 10, minLineLength=10, maxLineGap=5)
# print(lines)
print("Line Num : ", len(lines))
#
for line in lines:
for x1, y1, x2, y2 in line:
cv2.line(img, (x1, y1), (x2, y2), (255, 0, 0), 1)
pass
img = Image.fromarray(img, 'RGB')
img.show()
if __name__ == "__main__":
line_detect("1.jpg")
pass
원 도 는 다음 과 같다.검사 결과:
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.