怎么在python項目中利用opencv實現(xiàn)一個圖像修復(fù)功能-創(chuàng)新互聯(lián)

怎么在python項目中利用opencv實現(xiàn)一個圖像修復(fù)功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的麥蓋提網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

cv2.inpaint()


  • cv2.INPAINT_TELEA

  • cv2.INPAINT_NS

import numpy as np
import cv2 as cv

img = cv.imread('messi_2.jpg')
mask = cv.imread('mask2.png',0)

dst = cv.inpaint(img,mask,3,cv.INPAINT_TELEA)

cv.imshow('dst',dst)
cv.waitKey(0)
cv.destroyAllWindows()

擴展:圖像金字塔


通常,我們曾經(jīng)使用恒定大小的圖像.但在某些情況下,我們需要使用不同分辨率的(相同)圖像.例如,在搜索圖像中的某些內(nèi)容時,如臉部,我們不確定該對象在所述圖像中的大小.

具有不同分辨率的圖像被稱為圖像金字塔(因為當它們保持在堆疊中,底部具有高分辨率圖像而頂部具有最低分辨率圖像時,它看起來像金字塔).

圖像金字塔有兩種:

  1. 高斯金字塔和

  2. 拉普拉斯金字塔

高斯金字塔的頂部是通過將底部圖像中的連續(xù)的行和列去除得到的.頂部圖像中的每個像素值等于下一層圖像中 5 個像素的高斯加權(quán)平均值.這樣操作一次一個 MxN 的圖像就變成了一個 M/2xN/2 的圖像。所以這幅圖像的面積就變?yōu)樵瓉韴D像面積的四分之一.這被稱為an Octave(一個八度)。連續(xù)進行這樣的操作就會得到一個分辨率不斷下降的圖像金字塔.

函數(shù)cv2.pyrDown()從一個高分辨率大尺寸的圖像向上構(gòu)建一個金子塔 (尺寸變小,分辨率降低).
代碼:

import cv2

img = cv2.imread('img.jpg')

lower_reso = cv2.pyrDown(img)

cv2.imshow('src',img)
cv2.imshow('HigherReso',lower_reso)

cv2.waitKey()

繼續(xù)使用函數(shù)cv2.pyrUp()從一個低分辨率小尺寸的圖像向下構(gòu)建一個金子塔(尺寸變大,但分辨率不會增加)


代碼:

import cv2

img = cv2.imread('img.jpg')

lower_reso = cv2.pyrDown(img)
higher_reso2 = cv2.pyrUp(lower_reso)

cv2.imshow('show',higher_reso2)

cv2.waitKey()

NOTE:


當用 cv2.pyrDown(),圖像的分辨率就會降低,信息就會被丟失.如果先cv2.pyrDown()產(chǎn)生的中間圖像再使用函數(shù)cv2.pyrUp()得到圖像,與原圖像相比分辨率差了很多.
可以修改代碼:

import cv2

img = cv2.imread('img.jpg')

higher_reso2 = cv2.pyrUp(img)
lower_reso = cv2.pyrDown(higher_reso2)


cv2.imshow('show',lower_reso)

cv2.waitKey()

拉普拉斯金字塔由高斯金字塔形成,大部分元素都是零,用于圖像壓縮.
代碼:

import cv2

img = cv2.imread('img.jpg')
img = cv2.Canny(img, 100, 200)

higher_reso2 = cv2.pyrUp(img)
lower_reso = cv2.pyrDown(higher_reso2)

cv2.imshow('src',img)
cv2.imshow('higher_reso2',higher_reso2)
cv2.imshow('lower_reso',lower_reso)

cv2.waitKey()

看完上述內(nèi)容,你們掌握怎么在python項目中利用opencv實現(xiàn)一個圖像修復(fù)功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)站標題:怎么在python項目中利用opencv實現(xiàn)一個圖像修復(fù)功能-創(chuàng)新互聯(lián)
鏈接URL:http://muchs.cn/article44/csgphe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站營銷ChatGPT、網(wǎng)站設(shè)計網(wǎng)站內(nèi)鏈、移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司