2016-11-10 3 views
0

Я пытаюсь нарисовать прямоугольник на черном изображении, нас cv2.rectangle. Вот мой код: (Это всего лишь образец, в реальном коде есть цикл ie значения x2, y2, w2, h2 изменения в цикле)OpenCV cv2.rectangle output двоичное изображение

heir = np.zeros((np.shape(image1)[0],np.shape(image1)[1]),np.uint8); 
    cv2.rectangle(heir,(x2,y2),(x2+w2,y2+h2),(255,255,0),5) 
    cv2.imshow("img",heir); 
    cv2.waitKey() 

это дает следующий результат: output image : heir Почему изображение так? Почему границы не просто линии ширины 5. Я пробовал, но я не могу понять это.

+0

Является ли это захват экрана из imshow? Является ли исходное изображение * много * более высоким разрешением (например, 5x?), Поэтому линии теряются по мере того, как изображение снижается с дискретизацией для отображения? Что произойдет, если вы выполните эти операции с меньшим изображением? – barny

+0

Благодарим за комментарий. Нет, это не тот случай. Это полноразмерное изображение. Я не делал никакой обработки (downsample или upsample). Это imwrite версия – Maham

+0

, что типичные значения x2, y2, w2, h2? – barny

ответ

0

Не можете отправить это в комментариях, но это отрицательный ответ: одни и те же операции, работа для меня на Windows/питон 2.7.8/opencv3.1

import numpy as np 
import cv2 

heir = np.zeros((100,200),np.uint8); 
x2=10 
y2=20 
w2=30 
h2=40 
cv2.rectangle(heir,(x2,y2),(x2+w2,y2+h2),(255,255,0),5) 
cv2.imshow("img",heir); 
cv2.waitKey() 

enter image description here

+0

Да, именно это работает. Но я хочу двоичный вывод – Maham

+0

Итак, почему вы используете cyan-ish (255,255,0) в качестве цвета прямоугольника? сделайте это (255,255,255), если вы хотите белый. – barny

+0

Да, я пробовал со всеми возможностями. Я делаю это (255,255,255), (255,255,0), (255,0,255) и просто 255. Ничего не работает – Maham

Смежные вопросы