我正在使用cv2.line
在图像上绘制垂直线。该命令适用于某些像素值,但不适用于所有像素。例如,我可以画一条穿过像素(21,1)到(21,450)的直线,但不能穿过(160,1)到(160,450)的直线。我确定我的图片大于160像素。我使用了不同的值,在我看来,打印行的值和不打印行的值是随机的。这是我的代码(我正在使用Jupiter Notebook):
new_im = cv2.cvtColor(edge, cv2.COLOR_GRAY2RGB)
cv2.line(new_im,(21,1),(21,450),(255,0,0),1)
cv2.line(new_im,(50,1),(50,450),(255,0,0),1)
cv2.line(new_im,(100,1),(100,450),(255,0,0),1)
cv2.line(new_im,(150,1),(150,450),(255,0,0),1)
cv2.line(new_im,(155,1),(155,450),(255,0,0),1)
cv2.line(new_im,(165,1),(165,450),(255,0,0),1)
plt.imshow(new_im)
plt.show()
我也尝试更改行的顺序,但得到的结果相同。有些行已打印,有些则没有。
答案 0 :(得分:0)
在某些后端中显示defaults到最近的邻居插值。
如果视图小于原始图像,则某些行可能会被丢弃而根本不显示。
通过显式设置适当的插值字符串(例如,双线性的:
plt.imshow(new_im, interpolation="bilinear")