亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單通道圖像標注

單通道圖像標注

慕哥6287543 2023-02-15 17:35:32
我正在研究語義分割問題的掩碼(標簽)生成我有一個 NumPy 數組250x321。這是一個單通道圖像。我必須注釋這張圖片。但由于這是單通道圖像,當嘗試以 的正常模式保存它時matplotlib.pyplot,尺寸會隨著通道的變化而改變 (4)。當只存儲單通道圖像png格式時,圖像全黑,因此無法對圖像進行標注。所以我無法注釋png格式圖像(全黑),也無法使用正常的matplotlib.pyplot保存功能(Dim 隨通道一起更改)有人可以建議我如何完成這項工作!我使用了下面給出的代碼plt.imshow(data[:, 400:650].T)plt.tight_layout()plt.xticks([])plt.yticks([])plt.axis('off')plt.savefig('/content/new.png',bbox_inches='tight', pad_inches=0.0)上面的代碼在原始數組的形狀為 shape 時245x315x4生成shape數組。plt.imread250x321x1
查看完整描述

1 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

首先,如果您只想保存圖像,請避免使用plt.savefig,而是使用其中之一plt.imsave(或來自其他庫的替代方案,例如opencv'simwrite或來自 的工具PIL等)。這樣做的原因是plt.savefig實現保存整個圖形,這意味著保存軸、標簽、文本等。此外,它需要一個布爾參數來Transparent處理第四個通道。因此,在不知道 的內部工作原理和確切實現的情況下plt.savefig,可以肯定地說它不應該用于保存灰度圖像。

但是,在您的情況下,由于您沒有使用plt.savefig圖像本身以外的任何東西來繪制任何東西,因此在涵蓋您的問題中的兩點之后,我將采用一個簡單的解決方法。首先,你的代碼是

plt.imshow(data[:, 400:650].T)

但是因為你想要一個灰度圖像,你應該設置cmap="gray". 二、關于這部分

僅以 png 格式存儲單通道圖像時,圖像全黑

您的問題中沒有關于您的值范圍的任何信息data,但我猜這只是“float”與“uint8”數據類型的問題。嘗試設置data.astype(float64),或者如果使用uint8,請確保將其標準化[0,255]而不是[0,1]。

現在關于簡單的解決方法,一旦您弄清楚如何更正上述內容并保存您的圖形,您會注意到在加載圖像時所有plt.imread四個通道都具有相同的值(假設您已經設置cmap=gray),所以你可以只選擇四個通道中的任何一個并丟棄其他通道。

但同樣,使用plt.imsaveor opencv 是一個更好的主意。


查看完整回答
反對 回復 2023-02-15
  • 1 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號