现在我有一张图像的起始线(79,143)和结束线(200,100),宽度为500,高度为500,我想用它们来保存一个像pic 这样的二进制掩码。 我可以使用skimage来保存它,但是线宽似乎是固定的,并且我确实想使用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 * nchannels)
有什么办法解决吗? 非常感谢!
非常感谢!
答案 0 :(得分:0)
OpenCV绘图线function确实有一个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)