Python: сохранить двоичные маски строк с заданной шириной линии без использования CV2? - PullRequest
0 голосов
/ 26 сентября 2018

Теперь у меня есть начальный шнур (79,143) и конечный шнур (200,100), ширина 500 и высота 500 изображения, и я хочу использовать их для сохранения бинарной маски, как рис. line mask.Я могу использовать лыжный образ, чтобы сохранить его, но ширина линии кажется фиксированной, и я хочу использовать cv2, так есть ли какое-то другое решение, чтобы сохранить маску с пользовательской шириной линии?

и между тем, у меня естьпрограмма cv2, но она не работает,

У меня есть программа: import cv2 import numpy as np from matplotlib import pyplot as plt img = np.zeros((1080,1080,3),np.uint8) for i in range(3): im=np.squeeze(img[:,:,i]) print(im) imgg=cv2.line(im,(0,0),(511,511),255,5) masks=Image.fromarray((imgg).astype(np.uint8)) masks.save("masks"+str(i)+".png")

, и я хочу сохранить 3 одинаковые маски, но она выдала ошибку:

Расположение выходного массива img несовместимо с cv :: Mat (step [ndims-1]! = Elemsize или step 1 ! = Elemsize * nchannel)

есть идеи как это решить?Большое спасибо!

Большое спасибо!

1 Ответ

0 голосов
/ 26 сентября 2018

Функция рисования линии OpenCV имеет параметр thickness.Вы можете указать это так:

# Setup an empty image
im = np.zeros((500, 500), dtype=np.uint8)

# Draw with thickness
im = cv2.line(im, (79,143), (200, 100), color=(255, 255, 255), thickness=10)
...