色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV4.8 CUDA編程代碼教程

OpenCV學(xué)堂 ? 來(lái)源:OpenCV學(xué)堂 ? 2023-12-05 09:56 ? 次閱讀

OpenCV4.8 CUDA編程代碼教程

預(yù)計(jì)閱讀時(shí)間 :12 mins

01CUDA支持模塊

OpenCV4支持通過GPU實(shí)現(xiàn)CUDA加速執(zhí)行,實(shí)現(xiàn)對(duì)OpenCV圖像處理程序的加速運(yùn)行,當(dāng)前支持加速的模塊包括如下:

圖像背景分割

視頻編解碼

特征2D

卷積濾波

圖像處理

對(duì)象檢測(cè)

光流

雙目視覺

基本上包含了OpenCV圖像處理的主要功能,這里有一個(gè)地方需要特別注意,就是編譯時(shí)候選擇不同的CUDA版本,對(duì)上述模塊的支持略微不同。比如最新的CUDA10.0來(lái)說已經(jīng)不支持級(jí)聯(lián)檢測(cè)器的加速啦。 要想利用GPU實(shí)現(xiàn)CUDA OpenCV加速,第一步當(dāng)然是重新編譯OpenCV源碼實(shí)現(xiàn)對(duì)CUDA的支持,這個(gè)可以參考我之前發(fā)的文章

OpenCV4 | 如何讓傳統(tǒng)圖像處理實(shí)現(xiàn)三十倍加速的頂級(jí)技能

收到大家的反饋,覺得視頻比較好,所以又錄制了一個(gè)OpenCV4 + CUDA加速編譯與配置的視頻教程

02代碼演示教程

檢測(cè)CUDA設(shè)備支持,代碼如下:

cuda::getDevice());
intcount=cuda::getCudaEnabledDeviceCount();
printf("GPUDeviceCount:%d
",count);

運(yùn)行截圖:

99c0b300-92ab-11ee-939d-92fbcf53809c.png

CUDA處理圖像的時(shí)候,首先需要把Mat圖像上載到CUDA數(shù)據(jù)單元GpuMat對(duì)象中去,然后調(diào)用CUDA支持的相關(guān)API進(jìn)行處理,處理完成之后,再?gòu)腉puMat下載數(shù)據(jù)到原始Mat對(duì)象中,完成后續(xù)操作。以圖像灰度轉(zhuǎn)換為例,代碼演示如下:

//灰度轉(zhuǎn)換
Matsrc_host=imread("D:/images/test.png");
GpuMatsrc,gray;
src.upload(src_host);
cuda::cvtColor(src,gray,COLOR_BGR2GRAY);
Matgray_host;
gray.download(gray_host);
imshow("src",src_host);
imshow("gray",gray_host);
waitKey(0);

CUDA支持各種卷積處理,卷積處理支持盒子模糊、高斯模糊、圖像梯度(SobleScharr)、二階導(dǎo)數(shù)算子-拉普拉斯算子、以高斯模糊為例,代碼演示如下:

cv::Math_img1=cv::imread("D:/images/test1.png");
cv::GpuMatd_img1,d_result3x3,d_result5x5,d_result7x7;

//加載數(shù)據(jù)
d_img1.upload(h_img1);

//創(chuàng)建高斯
autofilter3x3=cv::createGaussianFilter(CV_8UC3,CV_8UC3,cv::Size(3,3),5);
autofilter5x5=cv::createGaussianFilter(CV_8UC3,CV_8UC3,cv::Size(5,5),5);
autofilter7x7=cv::createGaussianFilter(CV_8UC3,CV_8UC3,cv::Size(7,7),5);

//執(zhí)行
filter3x3->apply(d_img1,d_result3x3);
filter5x5->apply(d_img1,d_result5x5);
filter7x7->apply(d_img1,d_result7x7);

//獲取結(jié)果
cv::Math_result3x3,h_result5x5,h_result7x7;
d_result3x3.download(h_result3x3);
d_result5x5.download(h_result5x5);
d_result7x7.download(h_result7x7);

//顯示
cv::imshow("OriginalImage",h_img1);
cv::imshow("Blurredwithkernelsize3x3",h_result3x3);
cv::imshow("Blurredwithkernelsize5x5",h_result5x5);
cv::imshow("Blurredwithkernelsize7x7",h_result7x7);

waitKey(0);
return;

CUDA支持圖像的角點(diǎn)檢測(cè),支持Harris與shi-tomas角點(diǎn)檢測(cè),以shi-tomas角點(diǎn)檢測(cè)為例,代碼演示如下:

Matsrc_host=imread("D:/images/building.png");
imshow("input",src_host);
GpuMatsrc,gray,corners;
Matdst;
src.upload(src_host);
cuda::cvtColor(src,gray,COLOR_BGR2GRAY);
autocorner_detector=cuda::createGoodFeaturesToTrackDetector(gray.type(),1000,0.01,15,3);
corner_detector->detect(gray,corners);
corners.download(dst);
printf("detectedcorners%d....
",corners.cols);
for(inti=0;i(0,i);
circle(src_host,pt,3,Scalar(b,g,r),2,8,0);
}
imshow("cornerdetect",src_host);
waitKey(0);
return;

我們都知道OpenCV中的雙邊模糊是處理速度比較慢的邊緣保留算法,但是它的CUDA版本完全可以做到實(shí)時(shí)運(yùn)行無(wú)壓力,在線美顏很輕松,代碼演示如下:

try{
Matsrc_host=imread("D:/images/example.png");
imshow("input",src_host);
GpuMatsrc(src_host);
GpuMatdst;
cuda::bilateralFilter(src,dst,0,100,15,4);
Matdst_host;
dst.download(dst_host);
imshow("result",dst_host);
}
catch(constException&ec){
std::cout<

CUDA還支持各種特征匹配,以O(shè)RB特征匹配為例,實(shí)現(xiàn)CUDA版本的特征匹配會(huì)比沒有CUDA版本的速度快到10倍以上,基本也可以達(dá)到實(shí)時(shí)級(jí)別。以O(shè)RB特征匹配為例,代碼演示如下:

//gpudata
cuda::GpuMatd_object_image;
cuda::GpuMatd_scene_image;

//cuda::GpuMatd_keypoints_scene,d_keypoints_object;//GPUkeypoints
vectorh_keypoints_scene,h_keypoints_object;//CPUkeypoints
cuda::GpuMatd_descriptors_scene,d_descriptors_object;//GPUdescriptor

//ImageCPUuploadedtoGPU
d_object_image.upload(h_object_image);
d_scene_image.upload(h_scene_image);

//對(duì)象檢測(cè)
autoorb=cuda::create();
//Detectfeaturepointsandextractcorrespondingdescriptors
orb->detectAndCompute(d_object_image,cuda::GpuMat(),h_keypoints_object,d_descriptors_object);
orb->detectAndCompute(d_scene_image,cuda::GpuMat(),h_keypoints_scene,d_descriptors_scene);

//BruteForceViolenceMatcher
Ptrmatcher=cuda::createBFMatcher(NORM_HAMMING);
vector>d_matches;
matcher->knnMatch(d_descriptors_object,d_descriptors_scene,d_matches,2);

std::cout<good_matches;
for(intk=0;k0))
{
good_matches.push_back(d_matches[k][0]);
}
}
std::cout<

CUDA支持各種光流算法,這里需要注意的時(shí)候,最新的OpenCV4中出現(xiàn)的DIS光流還不支持CUDA加速調(diào)用。CUDA光流算法支持調(diào)用基本上都可以達(dá)到70幀左右。調(diào)用CUDA加速的稠密光流法, CPU版本運(yùn)行在10幀左右,CUDA加速效果很明顯。

//GPU光流法
cuda::cvtColor(frame,gray,COLOR_BGR2GRAY);
farn->calc(preGray,gray,flow);

//GPU數(shù)據(jù)處理
vectormm;
cuda::split(flow,mm);
cuda::cartToPolar(mm[0],mm[1],gMag,gAng);

上面所有的測(cè)試都是基于OpenCV4.8+ GTX 3050TI的顯卡 + Windows 10 系統(tǒng)上完成。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3614

    瀏覽量

    93686
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68524
  • OpenCV
    +關(guān)注

    關(guān)注

    31

    文章

    634

    瀏覽量

    41337
  • CUDA
    +關(guān)注

    關(guān)注

    0

    文章

    121

    瀏覽量

    13620

原文標(biāo)題:10分鐘學(xué)會(huì) OpenCV4.8 CUDA編程

文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Ubuntu系統(tǒng)下編譯OpenCV4.8源碼記錄

    支持,所以就用這個(gè)開發(fā)板給大家演示一下如何在烏班圖系統(tǒng)下編譯OpenCV4.8源碼與如何編譯執(zhí)行OpenCV C++應(yīng)用。
    的頭像 發(fā)表于 10-27 16:07 ?1625次閱讀
    Ubuntu系統(tǒng)下編譯<b class='flag-5'>OpenCV4.8</b>源碼記錄

    CUDA編程教程

    Nvidia CUDA 2.0編程教程
    發(fā)表于 03-05 07:30

    仿射變換綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:仿射變換綜合示例
    發(fā)表于 06-06 15:39 ?5次下載

    基本鼠標(biāo)操作_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:基本鼠標(biāo)操作
    發(fā)表于 06-06 15:39 ?5次下載

    點(diǎn)追蹤_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:點(diǎn)追蹤
    發(fā)表于 06-06 15:39 ?4次下載

    漫水填充算法綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:漫水填充算法綜合示例
    發(fā)表于 06-06 15:39 ?2次下載

    形態(tài)學(xué)圖像處理綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:形態(tài)學(xué)圖像處理綜合示例
    發(fā)表于 06-06 15:52 ?8次下載

    圖像濾波綜合示例_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:圖像濾波綜合示例
    發(fā)表于 06-06 15:52 ?6次下載

    OpenCV進(jìn)行基本繪圖_《OpenCV3編程入門》書本配套源

    OpenCV3編程入門》書本配套源代碼:用OpenCV進(jìn)行基本繪圖
    發(fā)表于 05-11 16:46 ?36次下載

    用morphologyEx進(jìn)行圖像開運(yùn)算_《OpenCV3編程入門》配套源代碼

    OpenCV3編程入門》書本配套源代碼:用morphologyEx進(jìn)行圖像開運(yùn)算
    發(fā)表于 06-06 15:52 ?11次下載

    用morphologyEx進(jìn)行圖像閉運(yùn)算_《OpenCV3編程入門》配套源代碼

    OpenCV3編程入門》書本配套源代碼:用morphologyEx進(jìn)行圖像閉運(yùn)算
    發(fā)表于 06-06 15:52 ?3次下載

    用迭代器訪問像素_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:用迭代器訪問像素
    發(fā)表于 06-06 15:52 ?2次下載

    CUDA簡(jiǎn)介: CUDA編程模型概述

    CUDA 編程模型中,線程是進(jìn)行計(jì)算或內(nèi)存操作的最低抽象級(jí)別。 從基于 NVIDIA Ampere GPU 架構(gòu)的設(shè)備開始,CUDA 編程模型通過異步
    的頭像 發(fā)表于 04-20 17:16 ?2998次閱讀
    <b class='flag-5'>CUDA</b>簡(jiǎn)介: <b class='flag-5'>CUDA</b><b class='flag-5'>編程</b>模型概述

    如何在OpenCV中實(shí)現(xiàn)CUDA加速

    OpenCV4.x中關(guān)于CUDA加速的內(nèi)容主要有兩個(gè)部分,第一部分是之前OpenCV支持的圖像處理與對(duì)象檢測(cè)傳統(tǒng)算法的CUDA加速;第二部分是Ope
    的頭像 發(fā)表于 09-05 10:03 ?5051次閱讀

    OpenCV4.8+CUDA+擴(kuò)展模塊支持編譯指南

    OpenCV4.8+CUDA+擴(kuò)展模塊支持編譯指南
    的頭像 發(fā)表于 11-30 16:45 ?1000次閱讀
    <b class='flag-5'>OpenCV4.8+CUDA</b>+擴(kuò)展模塊支持編譯指南
    主站蜘蛛池模板: 国产激情一级毛片久久久| 日韩欧美一区二区中文字幕| 亚洲精品久久久久一区二区三| 成人精品亚洲| 欧美 国产 日产 韩国 在线| 18黄女脱内衣| 久久中文字幕乱码免费| 亚洲无吗在线视频| 国内精品久久久久久久999下| 我和黑帮老大第365天第2季在线 | 爱情岛论坛免费在线观看| 蕾丝边娱乐网| 在线看片福利无码网址| 久久99国产精品无码AV| 亚洲欧美自拍清纯中文字幕| 国产无遮挡无码视频在线观看不卡| 四虎免费影院| 国产精品欧美久久久久天天影视| 爽娇妻快高h| 国产精品外围在线观看| 手机看片国产日韩欧美| 国产成人亚洲精品无广告| 色欲AV蜜臀AV在线观看麻豆| 成人精品视频99在线观看免费| 日本欧美高清一区二区视频| 被男按摩师添的好爽在线直播| 琪琪热热色原日韩在线| chinesevideoshd性舞| 欧美日韩中文在线字幕视频| adc我们的永久网址| 欧洲亚洲精品A片久久99果冻| 扒开老师大腿猛进AAA片软件| 秋霞电影院兔费理论观频84mb| 超碰98人人插| 手机看片国产免费| 国产一区日韩二区欧美三区| 亚洲精品无码专区在线播放 | 欧美丝袜女同| 赤兔CHINESE最新男18GUY| 入禽太深免费高清在线观看5| 国产成人亚洲精品老王|