2017-09-14 56 views
-1

我試圖在應用過濾器後保存圖像,但在保存我的磁盤上的操作後,我還沒有dst_1,但是imgСannot保存在OpenCV中過濾的圖像

img = cv2.imread(images[14], 1) 
kernel = np.ones((5,5), np.float32)/25 
dst_1 = cv2.filter2D(img, -1, kernel) 
cv2.imwrite("path/f.jpg", dst_1) 

當我申請濾波器後使用imshow,我看到了我希望看到 - 過濾的圖像。 有誰知道,這是什麼原因導致的imwrite行爲或我的錯誤在哪裏? 非常感謝!

+0

將路徑更改爲其他文件夾,僅用於測試。 – zindarod

+0

嘗試使用絕對路徑來保存圖像。如果是在linux上,確保你有權限寫入文件夾(或執行腳本的用戶) – api55

+0

我是macOS。我已經改變了絕對路徑,但情況是一樣的。 我可能會寫圖片,但我寫了錯誤的圖片。這是問題。 – Dmitry

回答

0

我相信問題不在於你保存文件的方式,而是你的過濾器沒有做你認爲正在做的事情,因此它看起來與你保存的圖像沒有什麼不同。

OpenCV以BGR格式打開圖像,並且您在評論中顯示的第二個圖像是相同的圖像,但是在RGB格式中,OpenCV有一個功能可以爲您執行此操作,因此請嘗試下面的代碼:

import cv2 
import numpy as np 

img = cv2.imread(images[14], 1) 
dst_1 = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 
cv2.imwrite("path/f.jpg", dst_1) 

這應該實現你正在尋找的輸出,希望它有幫助!

+0

過濾器沒問題,因爲我可以使用'imshow'功能看到它的結果。但是當我保存圖像時 - 沒有結果 – Dmitry

+0

我在我的ubuntu機器上測試了你的問題中的代碼,當我使用imshow時,它看起來完全一樣 – Aphire

+0

請編輯你的代碼,使其與你機器上的代碼完全相同,包括imshow – Aphire