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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Opencv PNG抠图

發布時間:2024/1/1 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Opencv PNG抠图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們平時接觸的最多的圖片格式除了jpg,還有一種就是帶透明通道的png圖。png這種帶透明通道的圖像因為有透明度,因此,它可以方便的和背景圖像進行疊加和組合。

彩色的jpg圖像是RGB三通道,而png是ARGB四通道(A就是Alpha,圖像處理這塊叫透明度)。在opencv中,png也是點陣數據,每個位置在內存中排列為BGRA。

比如下面一張png圖像,位深是32,也就是說每個位置是4個字節。我們這個圖像雖然是png的,但是現在它的透明通道都是255,所以我們可以清楚看到背景不是空的,而是白色。讓我們通過代碼把它的白色背景扣掉吧。

代碼其實比較簡單了,因為這個圖顏色比較純。就是遍歷每個位置,然后判斷這個位置如果RGB值都是255,就是白色,我們就把這個位置的Alpha通道設置為0,就是全透明了。

需要注意的是opencv讀取圖像默認會變成RGB圖,所以imread函數第二個參數需要傳值IMREAD_UNCHANGED,讓它讀圖時保持原有圖像的類型(同理加載單通道灰度圖也得設置)。

處理保存后我們可以看到,是不是背景透明了。

Alpha通道是有透明度的,所以我們可以再設置下這個圖的紅色部分,讓它變成半透明。

把前面的代碼略加改造,多一個紅色區域的判斷,然后把對應位置的Alpha通道設置成125(256的一半,所以是半透明,也就是透明度50%)。

之前文章我也用過這個圖。。因為紅色不夠紅,所以它這塊大部分紅色通道值是254,不是255。。。。

整完后效果就是這樣了:

這個放在這里圖比較小,對比不夠真切,我們可以用Photoshop打開對比看的更清楚。

把3.png作為上面圖層,疊加到另外一個圖像,就是那種經常說的圖像合成了。

當然這個原圖因為顏色不純。我這個是寫代碼單純判斷一個顏色,都沒有做閾值范圍,所以摳圖稀爛。。。我就是從代碼技術分析下原理,大家不要在意這個圖放上去的細節。。。

總結

以上是生活随笔為你收集整理的Opencv PNG抠图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。