生活随笔
收集整理的這篇文章主要介紹了
OpenCV学习笔记(七):访问图像中像素的三类方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
該文章參考毛星云著《OpenCV3編程入門》,電子工業出版社。
圖像是以像素為單位儲存的,訪問圖像中的每個像素是處理圖像的基礎,一般有三種訪問圖像像素的方法:
方法一:指針訪問:C操作符[ ]
方法二:迭代器iterator
方法三:動態地址計算
下面直接上代碼,代碼的目的是減少圖像的顏色種類數,即減少顏色的細分。
[cpp]?view plaincopy
#include<opencv2/opencv.hpp>??#include<iostream>????using?namespace?cv;??using?namespace?std;????void?colorreduce(Mat&?inputImage,?Mat&?outputImage,?int?div);????int?main()??{??????Mat?srcimage?=?imread("1.jpg");??????imshow("srcimage",?srcimage);????????Mat?dstimage;??????dstimage.create(srcimage.rows,?srcimage.cols,?srcimage.type());????????????double?time0?=?static_cast<double>(getTickCount());????????colorreduce(srcimage,?dstimage,?32);????????time0?=?((double)getTickCount()?-?time0)?/?getTickFrequency();??????cout?<<?"Time?=?"?<<?time0?<<?"seconds"?<<?endl;??????imshow("dstimage",?dstimage);??????waitKey(0);??}????void?colorreduce(Mat?&?inputImage,?Mat?&?outputImage,?int?div)??{??????????????outputImage?=?inputImage.clone();??????int?rowNumber?=?outputImage.rows;??????int?colNumber?=?outputImage.cols?*?outputImage.channels();?????????for?(int?i?=?0;?i?<?rowNumber;?i++)??????{??????????uchar*?data?=?outputImage.ptr<uchar>(i);???????????for?(int?j?=?0;?j?<?colNumber;?j++)??????????{??????????????data[j]?=?data[j]?/?div*div?+?div?/?2;??????????}????????????????}??????????/*????????????outputImage?=?inputImage.clone();??????Mat_<Vec3b>::iterator?it?=?outputImage.begin<Vec3b>();??????Mat_<Vec3b>::iterator?itend?=?outputImage.end<Vec3b>();????????for?(;?it?!=?itend;?++it)??????{??????????(*it)[0]?=?(*it)[0]?/?div*div?+?div?/?2;??????????(*it)[1]?=?(*it)[1]?/?div*div?+?div?/?2;??????????(*it)[2]?=?(*it)[2]?/?div*div?+?div?/?2;??????}??????*/?????????????????????????}??程序運行的效果如下:
從結果上看,減小顏色種類后,圖像變得更模糊了。
在程序中,需要注意的是colorreduce函數的形參是Mat&,而不是Mat,這是C++的知識,因為需要傳入函數的圖片在主函數中也發生變化,即函數外部的數據隨函數內部的操作而變化。
版權聲明:本文為博主原創文章,未經博主允許不得用于商業轉載。 https://blog.csdn.net/wangxuwen2/article/details/52091827
總結
以上是生活随笔為你收集整理的OpenCV学习笔记(七):访问图像中像素的三类方法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。