簡體   English   中英

使用cv2.line(…)繪制線條時,OpenCV覆蓋我的原始圖像

[英]OpenCV overwrites my original image when drawing a line with cv2.line(…)

我正在使用cv2.line(...)在現有圖像上繪制線條。 我將其分解為這個簡單的示例。 我不明白為什么在第一次調用cv2.line(...)丟失原始圖像,但是在第二次調用中似乎沒有發生相同的情況。

# Show the original image (BGR color map)
misc.imshow(vis)

# Draw the first line display, the original image is lost
cv2.line(vis, (10, 10), (300, 300), color=(0, 255, 0), thickness=4)
misc.imshow(vis)

# Draw a second line, somehow the previous image wasn't lost this time
cv2.line(vis, (50, 100), (250, 200), color=(0, 255, 0), thickness=4)
misc.imshow(vis)

來自imshow結果:

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

預期結果是原始圖像,並在其頂部繪制了兩條線。

發生問題是因為我的圖像表示為float32圖像,像素值在[0,1]范圍內,而顏色設置為(0,255,0),迫使圖像為整數表示,將我的所有[0, 1]值轉換為整數。

將我的顏色值更改為(0,1.0,0)可以解決此問題。

暫無
暫無

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

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