本文目錄一覽:
OpenCV-Python教程:57.圖像修復
基礎
你們可能家裡都會有一些老照片已經有黑點啊,劃痕啊等。你有想過修復它們么?我們不能簡單的在繪圖工具里把他們擦除了就完了。因為這樣只是把黑色的東西變成白色的而已,實際上沒用。在這種情況下,會用到一種技術叫圖像修復。基本的思想很簡單:用周圍的像素替換壞掉的像素,這樣看上去就和周圍一樣了。比如下面這張:
很多算法被設計來干這個,OpenCV提供了兩個,可以用同一個函數來訪問: cv2.inpaint()
第一個算法是基於論文” An Image Inpainting Technique Based on the Fast Marching Method”。 是基於快速匹配方法的。假設圖像里的一個區域要修復。算法從這個區域的邊界開始,逐漸地進入區域,把邊界內的所有東西填充上。它取要修復的部分周圍的一個像素周圍的一小片鄰居。這個像素被周圍已知的像素的標準加權和替換掉。選擇權重是很重要的。要修復的點周圍像素的權重較高。和正常邊界近的,還有在邊界輪廓上的像素的權重較高。當像素被修復以後,它會通過快速匹配方法(FMM)移動到最近的像素。FMM保證那些已知像素周圍的像素首先被修復,所以這個就像人工啟發式的操作一樣。這個算法使用標誌cv2.INPAINT_TELEA開啟。
第二個算法基於論文” Navier-Stokes, Fluid Dynamics, and Image and Video Inpainting “.這個算法基於流體動力學和偏微分方程。基本原則是啟發式。它首從已知區域先沿着邊緣到未知區域訪問(由於邊緣應該是連續的)。在匹配邊要修復區域邊界的梯度向量時持續畫等值線(把相同亮度的點用線連起來,類似於輪廓線)。這時候用到流體動力學。之後會填充顏色以減小最小方差。這個算法用標誌cv2.INPAINT_NS啟用。
編碼
我們需要創建和輸入圖像相同大小的掩圖,需要修復的區域對應的像素要非0.剩下的就簡單了。我的圖像被一些黑色劃痕給破壞了(實際上是我自己加的)。我用繪圖工具對應的標記出來。
看下面的結果。第一個圖片是輸入圖像,第二個是掩圖,第三個是用第一種算法的結果,最後一張是第二種算法的結果。
END
找回我去年5月份到現在的圖庫照片python,只需找回昨天到今被刪除圖庫照片就可以了
手機照片刪除後不要往裡面存入新的照片,避免覆蓋要恢復的照片。如果有雲備份可以直接恢復照片,如果沒有備份單靠手機是無法找到被刪除的照片。可以使用軟件進行恢復,步驟如下:
1.通過數據線將手機連接到電腦,對手機進行Root操作,
2.啟動互盾數據恢復軟件,用戶將可以看到整個軟件的基本界面。用戶可以選擇“U盤手機相機卡恢復”進入到下一步。
3.選擇文件丟失的目錄。
4.進入數據掃描階段。
5.掃描完成後預覽恢復的照片數據,選擇要恢復的照片,勾選好單擊下一步。
6.點擊瀏覽選擇一個盤存放要恢復的照片,然後單擊下一步。(存放的位置要和恢復文件的位置不同,以免被覆蓋)
7.等待片刻照片就會恢復完成。
圖像修復的criminisi如何用python實現
if rv is not None and rsv is not None:
# extract version/subversion
self._nmap_version_number = int(line[rv.start():rv.end()])
self._nmap_subversion_number = int(line[rsv.start()+1:rsv.end()])
break
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/312811.html