2015-11-11 3 views
4

Я отчасти новичок в opencv и обработке изображений. Я пробовал этот код, который я нашел на pyimagesearch.com. Я изменил размер изображения на высоту 500 пикселей, чтобы выполнить обнаружение кромок и найти контуры.Изменение размера изображения в открытом формате

r = 500.0/image.shape[1] 
dim = (500,int(image.shape[0] * r)) 
image = cv2.resize(image,dim,interpolation = cv2.INTER_AREA) 
ratio = image.shape[0] /500.0 

Опять же, я умножать обработанное изображение с соотношением (так что изменения сделаны w.r.t исходного изображения)

warped = four_point_transform(orig,screenCnt.reshape(4,2)*ratio) 
r = 500.0/warped.shape[1] 
dim = (500,int(warped.shape[0] * r)) 

warped = cv2.resize(warped,dim,interpolation = cv2.INTER_AREA) 
cv2.imshow("Perspective Transform",warped) 

После этого, какие результаты я получаю нечто вроде этого Image. Только часть изображения видна, и я не могу увидеть остальную часть изображения. Пожалуйста, помогите мне. Благодаря!

ответ

2

Мне кажется, что вы смешиваете ширину и высоту.

Для обычного изображения image.shape[] предоставит вам высоту, ширину и каналы в указанном порядке.

Так что, вероятно, следует выглядеть следующим образом:

newHeight = 500.0 
oldHeight = image.shape[0] 
oldWidth = image.shape[1] 
r = newHeight/oldHeight 
newWidth = int(oldWidth * r) 
dim = (newHeight, newWidth) 
image = cv2.resize(image, dim, interpolation = cv2.INTER_AREA) 
aspectRatio = image.shape[1]/image.shape[0] 
Смежные вопросы