簡體   English   中英

opencv python cv2.line僅適用於某些像素值

[英]opencv python cv2.line works only for certain pixel values

結果圖像鏈接

我正在使用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()

我也嘗試更改行的順序,但得到的結果相同。 有些行已打印,有些則沒有。

在某些后端中,imshow 默認為最近鄰插值。

如果視圖小於原始圖像,則某些行可能會被丟棄而根本不顯示。

通過顯式設置適當的插值字符串(例如雙線性)來修復此問題:

plt.imshow(new_im, interpolation="bilinear")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM