Я пытаюсь преобразовать перспективу в 4 точки, чтобы начать делать OCR.Ошибка 4-х точечного перфективного преобразования
Начиная со следующим изображением я могу обнаружить номерной знак
и обрезать его с зеленой коробкой, являющейся ограничивающая рамкой и красными точками, являющихся углами прямоугольника, я хочу, чтобы умиротворять вверх.
Это выход преобразования.
На первый взгляд швы сделали преобразование наизнанку (с учетом части либо сторону, а не между точками).
Я использую пакет imutils для преобразования и работы от this и this в качестве руководства. Я уверен, что это что-то относительно просто, что мне не хватает.
#!/usr/bin/python
import numpy as np
import cv2
import imutils
from imutils import contours
from imutils.perspective import four_point_transform
img = cv2.imread("sample7-smaller.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blurred = cv2.bilateralFilter(gray,15,75,75)
v = np.median(blurred)
lower = int(max(0, (1.0 - 0.33) * v))
upper = int(min(255, (1.0 + 0.33) * v))
edged = cv2.Canny(blurred, lower, upper, 255)
conts = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
conts = conts[0] if imutils.is_cv2() else conts[1]
conts = sorted(conts, key=cv2.contourArea, reverse=True)
for cnt in conts:
approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
if len(approx) == 4:
x,y,w,h = cv2.boundingRect(cnt)
cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2)
for i in approx:
cv2.circle(img,(i[0][0], i[0][1]),2,(0,0,255), thickness=4)
warped = four_point_transform(img, approx.reshape(4,2))
cv2.imshow("crop",img[y:y+h,x:x+w])
cv2.imshow("warped", warped)
cv2.waitKey(0)
Это w Предположим, что код imutils должен выполняться (http://www.pyimagesearch.com/2014/08/25/4-point-opencv-getperspective-transform-example/#crayon-58a578867d24b280571411), он, похоже, делает то же самое, просто вычисляя размеры вывода на лету – hardillb
Итак, вы хотите, чтобы ваш размер выходного сигнала был рассчитан на лету @hardillb? – ZdaR
Я хотел бы сохранить его в том же масштабе, чтобы начать с него, затем я могу его повторно масштабировать – hardillb