日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > vue >内容正文

vue

vue 实现ps图片编辑_帮你解锁一个新技能,opencv完美媲美PS,图片PS,我们代码实现...

發(fā)布時(shí)間:2025/3/12 vue 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue 实现ps图片编辑_帮你解锁一个新技能,opencv完美媲美PS,图片PS,我们代码实现... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

很多時(shí)候,我們相中了一張圖片,怎奈圖片上面有水印,不會(huì)PS的我們?cè)撊绾蝸?lái)處理圖片,這里小編介紹一下一下opencv的cv2.inpaint的圖片修復(fù)函數(shù),使用此cv2.inpaint函數(shù),可以完美匹配PS。

OpenCV提供了兩種算法。兩者都可以通過(guò)相同的函數(shù)訪問(wèn),cv2.inpaint()

圖片修復(fù)

opencv圖片修復(fù)算法

第一種算法基于Alexandru Telea于2004年發(fā)表的“基于快速行進(jìn)方法的圖像修復(fù)技術(shù)”。它基于快速行進(jìn)方法。考慮圖像中要修復(fù)的區(qū)域。算法從該區(qū)域的邊界開(kāi)始,然后進(jìn)入?yún)^(qū)域內(nèi),逐漸填充邊界中的所有內(nèi)容。它需要在鄰近的像素周?chē)囊粋€(gè)小鄰域進(jìn)行修復(fù)。該像素由鄰居中所有已知像素的歸一化加權(quán)和代替。選擇權(quán)重是一個(gè)重要的問(wèn)題。對(duì)于靠近該點(diǎn)的那些像素,靠近邊界的法線和位于邊界輪廓上的像素,給予更多的權(quán)重。一旦像素被修復(fù),它將使用快速行進(jìn)方法移動(dòng)到下一個(gè)最近的像素。FMM確保首先修復(fù)已知像素附近的像素,這樣它就像手動(dòng)啟發(fā)式操作一樣工作。使用標(biāo)志cv2.INPAINT_TELEA啟用此算法。

第二種算法基于Bertalmio,Marcelo,Andrea L. Bertozzi和Guillermo Sapiro于2001年撰寫(xiě)的“Navier-Stokes,流體動(dòng)力學(xué)和圖像和視頻修補(bǔ)”一文。該算法基于流體動(dòng)力學(xué)并利用偏微分方程。基本原則是heurisitic。它首先沿著已知區(qū)域的邊緣行進(jìn)到未知區(qū)域(因?yàn)檫吘壥沁B續(xù)的)。它繼續(xù)等照片(連接具有相同強(qiáng)度的點(diǎn)的線,就像輪廓連接具有相同高度的點(diǎn)一樣),同時(shí)在修復(fù)區(qū)域的邊界處匹配漸變矢量。為此,使用來(lái)自流體動(dòng)力學(xué)的一些方法。獲得顏色后,填充顏色以減少該區(qū)域的最小差異。使用標(biāo)志cv2.INPAINT_NS啟用此算法。

PS

圖片修復(fù)代碼實(shí)現(xiàn)opencv實(shí)現(xiàn)圖片的修復(fù),主要使用cv2.inpaint()函數(shù)output = cv2.inpaint(image, mask,inpaintRadius, flags=flags)image:輸入8位1通道或3通道圖像mask:修復(fù)掩碼,8位1通道圖像output:輸出與image具有相同大小和類型的圖像inpaintRadius:算法考慮的每個(gè)點(diǎn)的圓形鄰域的半徑flags:INPAINT_NS基于Navier-Stokes的方法Alexandru Telea的INPAINT_TELEA方法了解了cv2.inpaint的函數(shù),就可以使用代碼來(lái)實(shí)現(xiàn)opencv圖片的修復(fù)了import cv2#flags = cv2.INPAINT_TELEAflags = cv2.INPAINT_NSimage = cv2.imread('examples/1.png')mask = cv2.imread('examples/mask1.png')mask = cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)output = cv2.inpaint(image, mask,3, flags=flags)cv2.imshow("Image", image)cv2.imshow("mask", mask)cv2.imshow("Output", output)cv2.waitKey(0)

首先我們?cè)O(shè)計(jì)cv2.inpaint函數(shù)的flags,這里有2種方式,可以自行嘗試

使用cv2.imread函數(shù)來(lái)讀取原始圖片以及圖片的mask圖片

利用cv2.cvtColor(mask, cv2.COLOR_BGR2GRAY)函數(shù)把圖片BGR空間轉(zhuǎn)換為灰度圖片

然后使用cv2.inpaint函數(shù)進(jìn)行圖片的修復(fù)

最后我們顯示圖片

修復(fù)的照片

總結(jié)

以上是生活随笔為你收集整理的vue 实现ps图片编辑_帮你解锁一个新技能,opencv完美媲美PS,图片PS,我们代码实现...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。