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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

opencv获取mat的指针_数字图像处理之opencv中Mat数据操作

發布時間:2025/3/17 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv获取mat的指针_数字图像处理之opencv中Mat数据操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數字圖像處理其實就是處理二維矩陣數據。利用opencv來學習處理算法是一種比較好的方式。學習opencv,主要就是調用其中的圖像處理函數來實現各種操作。如果要得到想要的處理結果,還需要對圖像處理算法有一定的了解。同時,可能也有自己想寫一些算法的沖動,并急切的想驗證自己寫的算法是否能夠滿足處理的要求。可是,真正到自己動手寫的時候,總發現無從下手,比如,想得到圖像中的ROI區域(感興趣區域),想對圖像做加減運算算,將兩幅圖像連接成一幅圖像等等。如果要想隨心所欲的按照自己的想法來操作一幅圖像,則需要對opencv的mat數據操作非常熟練,建議初學者將這些基本的操作背下來,然后你會發現,你再進行這樣的操作將是得心應手。

在opencv中對圖像數據進行操作,我們可以簡單的把mat數據看成一個二維數,里面存儲的就是圖像的數據,所以,對mat數組的操作就是在操作二維圖像數據。下面我們來實現常見的Mat數據操作。

首先,在c++中新建一個空的控制臺程序,然后,在屬性管理器中添加我們之前設置好的opencv4.0配置文件,回到解決方案界面,選擇源文件,右鍵添加新項目,然后得到一個空白的源文件,如圖1和圖2所示。

圖1添加配置好的opencv配置文件

圖2 添加空白的源文件

然后,就可以在這個空白的源文件中寫代碼了。下面用具體的代碼來說明怎么操作mat數據。下面的代碼都可以直接復制到自己的工程中直接運行如果涉及到要打開圖像文件的,直接替換代碼中的文件路徑為自己電腦中的圖像路徑就可以了。

int main(int argc, char** argv){//構造3X3的Mat矩陣// CV_8UC1和CV_8UC3是數據類型和通道,指8位無符號單通道和3數據,通道數據Mat a(Size(3,3),CV_8UC1);Mat b = Mat(Size(3,3),CV_8UC3);cout<

圖3 輸出構造的mat數據

圖3是上面代碼輸出的結果,a是單通道,b是三通道,所以b是3行9列。里面的具體的值是opencv隨機自動給的,因為我們還沒有對mat賦值,這個不用管。再來看幾個操作,

Mat mz = Mat::zeros(Size(5,5),CV_8UC1);//構造5X5的全是0的mat數據

Mat mo = Mat::ones(Size(5,5),CV_8UC1);// 構造5X5的全是1的mat數據

Mat me = Mat::eye(Size(5,5),CV_8UC1); 構造5X5的單位矩陣的mat數據

上面的代碼可以直接在上面的main函數里面接著往下寫。圖4是輸出結果

圖4 上面三行代碼的輸出結果

接著往下寫。

Mat m1 = Mat::eye(Size(3,3),CV_32F);// CV_32F表示浮點數Mat m2 = Mat::ones(Size(3,3),CV_32F);Mat add = m1 + m2;//mat相加Mat sub = m1 –m2;//mat相減Mat mul1 = m1 * 2;//mat乘一個常數Mat mul2 = m1 + 2;//mat加一個常數Mat m1t = m1.t();//mat矩陣轉置Mat meInv = mul2.inv();//mat矩陣的逆矩陣int nonZeroNum = countNonZero(m1);//統計mat中非0的個數

下面我們重新寫一個main函數,不自己構造mat數據,直接從圖像中得到。然后對圖像數據的mat進行操作

int main(int argc, char** argv){Mat src1 = imread("E:1.bmp", 0);//0表示單通道,1表示3通道Mat src2 = imread("E:2.bmp", 0);Mat absSub;absdiff(src1, src2, absSub);//兩圖相減的絕對值namedWindow("absSub",0);imshow("absSub", absSub);Mat roiMat = src1(Range(0,3),Range(0,4));//取圖像中的0到3行和0到4列cout<< roiMat <

圖5 輸出結果顯示

上面包括了mat數據的主要操作命令,如果能夠把這些命令記住了,要對圖像做一般的操作基本上沒有什么問題了。

此外,如果要訪問圖像中的每一個像素值,可以采用下面指針的方式,速度是最快的。下面的代碼只是演示了怎么使用指針訪問像素,沒有什么特別的目的。

Mat dyImg = Mat(src1.rows, src1.cols,0);

for(int i=0;i

{

uchar* srcdata = src1.ptr(i);

uchar* dydata = dyImg.ptr(i);

for(int j=0;j< src1.cols;j++)

{

double tempValue = double(srcdata [j]) + 20.0;

if(tempValue < 0)

dydata[j] = 0;

else if(tempValue > 255)

dydata[j] = 255;

else

dydata[j] = tempValue;

}

}

namedWindow("dyImg ",0);

imshow("dyImg ", dyImg);

總結

以上是生活随笔為你收集整理的opencv获取mat的指针_数字图像处理之opencv中Mat数据操作的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: a级片免费在线观看 | 日韩精品一二三四区 | 少妇太紧太爽又黄又硬又爽 | 国产曰肥老太婆无遮挡 | 青青草av| 不卡av在线 | 一区二区三区欧美 | 69午夜| 1024亚洲天堂 | 国产精品视频播放 | av资源中文在线 | av最新版天堂资源在线 | 7777奇米影视 | 超碰在线免费观看97 | 狠狠干干干 | 夜夜视频 | 国产精品天美传媒沈樵 | 国产一二三在线观看 | 国产亚洲第一页 | 亚洲成年人免费观看 | 午夜一区二区三区在线观看 | 女人张开双腿让男人捅 | av一区二区三区在线 | 欧美变态网站 | 国产一级在线播放 | 好吊妞一区二区三区 | 国产私密视频 | 国产在线看片 | 在线免费日本 | 国产综合视频一区 | 色网站在线免费观看 | 日韩人妻无码精品久久免费 | 国产精品丝袜黑色高跟鞋的设计特点 | 色悠久 | 日韩av影片在线观看 | 91av毛片| 西西444www无码大胆 | 国产99久久久久 | 91久久综合 | 福利一区二区在线观看 | 综合网五月 | 欧美午夜小视频 | 男女偷爱性视频刺激 | 国产一级黄色录像 | 少妇日皮视频 | 小h片在线观看 | 黄色小说图片视频 | 大地资源二中文在线影视免费观看 | 污导航在线观看 | 成人免费福利视频 | av网站在线免费看 | 欧美毛片视频 | 毛片视频网| 快播视频在线观看 | 亚洲精品久久久久久久蜜桃臀 | 日韩二区三区 | 秋霞7777鲁丝伊人久久影院 | 人妻无码中文久久久久专区 | 中国美女一级黄色片 | 亚洲av综合av一区二区三区 | 亚洲一区网站 | 诱惑の诱惑筱田优在线播放 | 国产美女白浆 | 日本一区二区免费电影 | 亚洲AV永久无码国产精品国产 | 少妇精品视频一区二区 | 久久久婷婷 | 欧美福利网站 | 国产欧美一区二区三区在线老狼 | 国内自拍偷拍视频 | 精品自拍av | 香蕉视频污在线观看 | av在线免费播放网址 | 99视频国产精品 | 少妇xxx| 朴麦妮原版视频高清资源 | 处破痛哭a√18成年片免费 | 成人高潮片 | 一级大片视频 | 日韩一区二区a片免费观看 伊人网综合在线 | 日韩www视频| 免费av入口 | 亚洲精品v天堂中文字幕 | 射久久 | 国产网红主播精品av | 国产视频自拍一区 | 风流少妇按摩来高潮 | 成人片免费看 | 色网站在线观看 | 久久无码高潮喷水 | av片在线观看网站 | 91蝌蚪91九色白浆 | 久久精品毛片 | 黄色av免费在线观看 | 黄色不卡| 波多野结衣在线一区 | 奶水旺盛的少妇在线播放 | 小视频黄色 | 国产欧美久久久久 |