0
두 개의 라인 사이의 거리와 이미지의 중심점을 기준으로 한 위치의 차이를 찾기 위해 openCV를 사용하고 있습니다. 정확한 거리 일 필요는 없습니다 - 어떤 종류의 문맥 값 (픽셀은 괜찮을 것입니다)cv2 라이브러리와 화면 중심 사이의 거리 - 파이썬
두 코드를 감지하는 코드는 이것입니다;
import PIL
import time
import io
import picamera
import cv2
import numpy as np
image_count = 0
with picamera.PiCamera() as camera:
camera.start_preview()
camera.resolution = (340, 240)
time.sleep(2)
while(True):
try:
stream = io.BytesIO()
image_counter+=1
camera.capture(stream, format='png')
data = np.fromstring(stream.getvalue(), dtype=np.uint8)
image = cv2.imdecode(data, 1)
grey_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edge_image = cv2.Canny(grey_image, 50, 150, apertureSize = 3)
lines = cv2.HoughLines(edge_image, 1, np.pi/180, 95)
if(lines.any):
for rho, theta in lines[0]
a = np.cos(theta)
b = np.sin(theta)
x0 = a*rho
y0 = b*rho
x1 = int(x0 + 1000*(-b))
y1 = int(y0 + 1000*(a))
x2 = int(x0 - 1000*(-b))
y2 = int(y0 - 1000*(a))
cv2.line(image, (x1, y1), (x2, y2), (0,0,255), 2)
cv2.imwrite('lined_image_' + str(image_counter) + '.png, image)
except:
print 'loop error'
이 이미지와 같은 줄을 감지합니다.
이미지의 중심점과 표시되는 가장 안쪽 빨간색 선 사이의 거리를 어떻게 찾을 수 있습니까? (선이 이미지 중심점과 교차하는 수평선과 교차하는 지점)
고마워요!