国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV - 圖片增加透明通道,圖片合并透明通道

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV - 圖片增加透明通道,圖片合并透明通道。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1 為圖像增加透明通道

一般人像摳圖相關(guān)的AI模型會輸出一個(gè)Mask圖,這個(gè)Mask圖就是我們需要的可以將人物摳出來的Alpha通道信息,我們需要將這個(gè)Mask圖附加到原始圖片上,從BGR圖片轉(zhuǎn)成BGRA圖片或者從RGB圖片轉(zhuǎn)成RGBA圖片。

如果使用OpenCV進(jìn)行圖像處理,在為圖像增加透明通道時(shí)會使用到cv::splitcv::merge方法,先使用cv::split方法分離原始圖片各個(gè)通道,然后將Mask加入到原始通道中,最后使用cv::merge合成新的通道生成最后的圖片。

示例代碼如下

#include "opencv2/opencv.hpp"

cv::Mat MergeAlpha(const cv::Mat& src_image, const cv::Mat& alpha_image)
{
	std::vector<cv::Mat> channels;
	cv::split(src_image, channels);
	channels.push_back(alpha_image);
	cv::Mat src_alpha;
	cv::merge(channels, src_alpha);
	return src_alpha;
}

需要注意的是,Mask圖片必須與原始圖片具有相同的分辨率大小和相同的數(shù)據(jù)類型,比如原始圖片是1920x1080,CV_8UC3的圖片,那么Mask圖片必須是1920x1080,CV_8UC1的圖片。

如果你的OpenCV是編譯了CUDA,還可以將上述代碼修改成CUDA版本

cv::Mat MergeAlphaCUDA(const cv::Mat& src_image, const cv::Mat& alpha_image)
{
	cv::cuda::GpuMat src_image_gpu;
	src_image_gpu.upload(src_image);

	cv::cuda::GpuMat alpha_image_gpu;
	alpha_image_gpu.upload(alpha_image);

	std::vector<cv::cuda::GpuMat> channels;
	cv::cuda::split(src_image_gpu, channels);
	channels.push_back(alpha_image_gpu);
	cv::cuda::GpuMat src_alpha_gpu;
	cv::cuda::merge(channels, src_alpha_gpu);

	cv::Mat result;
	src_alpha_gpu.download(result);

	src_image_gpu.release();
	alpha_image_gpu.release();
	src_alpha_gpu.release();

	for (int i = 0; i < channels.size(); ++i)
	{
		channels[i].release();
	}

	return result;
}

按理來說,使用OpenCV的CUDA版本進(jìn)行計(jì)算相比CPU會快很多,但是經(jīng)過我對上面CPU和CUDA版本的運(yùn)行時(shí)間的測試,發(fā)現(xiàn)最終處理的時(shí)間是差不多的,我分析這個(gè)原因是在使用CUDA版本時(shí),需要將cpu上的圖片使用upload方法從內(nèi)存?zhèn)鬟f到顯存中,計(jì)算完成還需要將最終的結(jié)果圖片通過download方法從顯存?zhèn)鬟f到內(nèi)存中,如果圖片比較大,這種HostToDevice和DeviceToHost是比較耗時(shí)的。

參考鏈接

  • https://answers.opencv.org/question/31136/fastest-way-to-apply-alpha-channel-to-image/

有興趣可以訪問我的個(gè)人站:https://www.stubbornhuang.com/文章來源地址http://www.zghlxwxcb.cn/news/detail-568463.html

到了這里,關(guān)于OpenCV - 圖片增加透明通道,圖片合并透明通道的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • opencv+python(通道的分離與合并)筆記

    opencv+python(通道的分離與合并)筆記

    分割圖像通道: 通過函數(shù)mv=split(img);mv返回的通道; RGB有3個(gè)通道;灰度圖只有一個(gè)通道; 合并圖像通道:cv2.merge((b,g,r)) 修改圖像中某區(qū)域的顏色: img[10:100,10:100]=0 表示將圖像img的行索引從10到100(不包括100)和列索引從10到100(不包括100)的區(qū)域像素值設(shè)置為0。這里的1

    2024年04月10日
    瀏覽(15)
  • OpenCV4通道的分離split(),通道的合并merge(),通道的混合mixChannels()

    OpenCV4通道的分離split(),通道的合并merge(),通道的混合mixChannels()

    opencv中默認(rèn)imread函數(shù)加載圖像文件,加載進(jìn)來的是三通道彩色圖像,色彩空間是RGB色彩空間,通道順序是BGR(藍(lán)色、綠色、紅色),對于三通道的圖像OpenCV中提供了三個(gè)API函數(shù)用以實(shí)現(xiàn)通道分離split(),合并merge(),混合mixChannels(); RGB圖像,在opencv的Mat中,像素?cái)?shù)據(jù),存儲結(jié)構(gòu)

    2024年02月12日
    瀏覽(21)
  • OpenCV for Python 學(xué)習(xí)第四天 :通道的獲取與合并

    OpenCV for Python 學(xué)習(xí)第四天 :通道的獲取與合并

    上一篇博客,我們學(xué)習(xí)了如何通過更快的item()和itemset()的方法訪問圖片,以及了解了圖像的興趣位置的獲取方法,那么今天,我們將學(xué)習(xí)通道的處理方法,通過通道的拆分和合并的實(shí)例,讓大家更好的了解咱們有關(guān)于BGR通道的知識。 在OpenCV中,可以使用split()方法將圖像的不

    2024年02月17日
    瀏覽(17)
  • OpenCV在一張圖片上以不同的透明度添加另一張圖片
  • OpenCV 將單通道轉(zhuǎn)換為三通道

    項(xiàng)目有個(gè)需求:圖片傳至圖像算法庫處理完成后需要返回結(jié)果圖像進(jìn)行再加工。 目前的情況是相機(jī)拍下來的圖像是灰度圖 傳送圖像指針給算法處理,算法處理完后將檢測結(jié)果(eg. ok,ng)寫入一張三通道圖,只有這樣才可以顯示彩色文字 然后現(xiàn)在需要回傳此三通道圖片的指針

    2024年02月11日
    瀏覽(22)
  • 消防通道堵塞識別 opencv

    消防通道堵塞識別 opencv

    消防通道堵塞識別系統(tǒng)通過opencv+python網(wǎng)絡(luò)模型技術(shù),消防通道堵塞識別對消防通道的狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測,檢測到消防通道被堵塞時(shí),將自動發(fā)出警報(bào)提示相關(guān)人員及時(shí)采取措施。OpenCV的全稱是Open Source Computer Vision Library,是一個(gè)跨平臺的計(jì)算機(jī)視覺處理開源軟件庫,是由Int

    2024年02月16日
    瀏覽(19)
  • 02 OpenCV圖像通道處理

    02 OpenCV圖像通道處理

    在數(shù)字圖像處理中,圖像通道是指一個(gè)圖像中的顏色信息被分離為不同的顏色分量。常見的圖像通道包括RGB通道、灰度通道、HSV通道等。 RGB通道是指將圖像分離為紅色、綠色和藍(lán)色三個(gè)顏色通道,每個(gè)通道表示相應(yīng)顏色的亮度。這種方式是最常見的方式,它對于彩色圖像的處

    2024年02月12日
    瀏覽(20)
  • opencv 基礎(chǔ)學(xué)習(xí)08-圖像通道操作

    opencv 基礎(chǔ)學(xué)習(xí)08-圖像通道操作

    OpenCV的通道拆分功能可用于將多通道圖像拆分成單獨(dú)的通道,這在圖像處理和計(jì)算機(jī)視覺任務(wù)中具有許多應(yīng)用場景。以下是一些通道拆分的常見應(yīng)用場景: 圖像處理 :在某些圖像處理任務(wù)中,需要對圖像的不同通道進(jìn)行獨(dú)立處理。例如,可以對彩色圖像的RGB通道進(jìn)行分別處

    2024年02月16日
    瀏覽(31)
  • Python使用OpenCV庫對彩色圖像進(jìn)行通道分離

    目錄 1、解釋說明: 2、使用示例: 3、注意事項(xiàng): 在Python中,我們可以使用OpenCV庫對彩色圖像進(jìn)行通道分離。通道分離是將彩色圖像的每個(gè)像素分解為三個(gè)通道(紅、綠、藍(lán))的過程。這樣,我們可以分別處理和分析每個(gè)通道的信息。通道分離在圖像處理中有很多應(yīng)用,例如

    2024年02月12日
    瀏覽(25)
  • OpenCV增加圖像的亮度及對比度

    OpenCV增加圖像的亮度及對比度

    案例:輸出一張?jiān)瓐D,增加該圖片的亮度及對比度 基本概念: 亮度:RGB的像素值范圍是0~255,我們稱從0——255隨著像素值的增加圖像會越來月亮,反之會越來越暗。所以我們可以通過對圖像像素加減來改變圖像的亮度。 對比度:其反應(yīng)的是圖像中各像素的差異(層次感、落

    2024年02月12日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包