久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

OpenCV中:CvArr,、CvMat,、IplImage、cv::Mat和cv::InputArray的相關(guān)總結(jié)

 水木天涯閣 2018-01-16

        1.CvArr* :

  1. typedef void CvArr,;  
        可以認為CvArr*是一個萬能指針,,例如某個函數(shù)參數(shù)是CvArr*,該函數(shù)內(nèi)部會強制轉(zhuǎn)換回該函數(shù)需要的數(shù)據(jù)類型,,所以在調(diào)用該函數(shù)時,,傳入的參數(shù)類型就必須與該函數(shù)要求的類型一致,否則就會出錯,。

        2.cv::Mat:

         我們可以認為cv::Mat類型把向量,、矩陣、圖像等都統(tǒng)一了操作,。cv::Mat有更強大的矩陣運算能力,,支持常見的矩陣運算。對于圖像數(shù)據(jù)的運算,,將IplImage和CvMat類型轉(zhuǎn)換成cv::Mat類型可大大提高運算效率(后面會將cv::Mat與IplImage和CvMat類型之間的轉(zhuǎn)換),。

2.1 cv::Mat的一些操作

  1. cv::Mat mat = imread(const string* filename);  //讀取圖像  
  2. imshow(const string Window's name, mat);       //顯示圖像  
  3. imwrite(const string&filename, mat);           //將mat圖像保存到固定路徑中  

      3.IplImage:

現(xiàn)在OpenCV的很多處理圖像的函數(shù)中都使用IplImage* 這個數(shù)據(jù)類型,下面是它的一些重要的操作:

  1. IplImage* img = cvLoadImage(PathName);         //從路徑中加載圖像到img  
  2. cvShowImage("WindowName", img);            //顯示圖像img  
  3. cvWaitKey();                                   //按任意鍵退出窗口  

        4.CvMat:

  因為CvMat是矩陣結(jié)構(gòu),,無法像IplImage和Mat一樣直接讀取圖像數(shù)據(jù),,而是要先創(chuàng)建Mat類的空矩陣(cvCreateMat());再利用宏CV_MAT_ELEM()存放數(shù)據(jù),或者提取數(shù)據(jù),。

注意:這個宏只針對單通道有用,,多通道就會報錯。

        對于多通道的CvMat矩陣來說,,要用cvSetND()對矩陣初始化,,用cvGetND()來提取數(shù)據(jù)。

  1. cvSetND(CvArr* arr, int idx0, int idy0, CvScalar value);    
  2. cvSet2D(mat, 0, 0, CvScalar(2,3,0,0));                     //矩陣mat的(0,0)點的像素值為一通道2,,二通道3.  

5.IplImage轉(zhuǎn)cv::Mat類型,、CvMat轉(zhuǎn)cv::Mat類型:

在VC++調(diào)用OpenCV處理圖像時,經(jīng)常用到的一些OpenCV函數(shù)的形參類型可能是cv::Mat,、也可能是IplImage或者CvMat,,那么在圖像數(shù)據(jù)傳遞的過程中就需要在IplImage和CvMat與cv::Mat之間進行轉(zhuǎn)換。

5.1.1  IplImage轉(zhuǎn)cv::Mat類型:

  1. Mat MatImage(IplImage* img);   //直接利用Mat定義一個Mat類矩陣,,強制將括號內(nèi)的IplImage*類型圖像轉(zhuǎn)換成Mat類  
5.1.2  CvMat轉(zhuǎn)cv::Mat類型:
  1. Mat MatImage = Mat(CvMat* img, bool = true); //當bool=true時,,會將img中的數(shù)據(jù)直接深拷貝到MatImage中,而bool=false時只創(chuàng)建與img相同的矩陣頭  
5.1.3  cv::Mat轉(zhuǎn)CvMat類型:
  1. CvMat CvMatImage = CvMat(cv::Mat img);    //直接將cv::Mat類型圖像矩陣轉(zhuǎn)換成CvMat類型  
5.1.4  cv::Mat轉(zhuǎn)IplImage類型:
  1. IplImage IPLimage = MatImage;    
5.2  IplImage類型圖像拷貝到另一個IplImage類型圖像中:
  1. IplImage* img1 = cvLoadImage(pathName, 2);  //img1指針指向路徑中的圖像,,參數(shù)=2時加載原始的灰度圖  
  2. IplImage* img2 = cvCloneImage(&img1);  //將img1指針指向的圖像引用,,并復制到IplImage* img2,img2也是指向該圖像的指針類型  
        6.OpenCV中的一些常用的函數(shù)及其參數(shù)類型的總結(jié):

  1. GaussianBlur(cv::InputArray src, cv::outputArray dst, cv::Size, 0,0); //高斯濾波  

通常導入的圖像為cv::Mat類型,輸出的高斯濾波后的圖像也是cv::Mat類型圖像,,cv::Size通常用Size(3,3),。

 

  1. HoughCircles(cv::InputArray image, cv::OutputArray circles, int method, double dp, double minDist, double param1, double param2,int minRadius, int maxRadius);  
  1. //通常輸入圖像為cv::Mat類型,輸出的circles定義為vector<Vec3f> circles,,用于存放找到的圓的圓心x,,y坐標和圓的半徑;  
  1. //dp =1為最小分辨率,,minDist=1為允許找到的圓的圓心之間相隔的最小距離,,param1和param2根據(jù)具體圖像灰度來確定最優(yōu)值。  

  1. CvMat* img = cvCreateMatHeader(int rows, int cols,CV_8UC1);//CvMat* cvCreateMatHeader();  
  1. CvRect rect = cvRect(int x, int y, int width, int height);  //定義矩形框的尺寸  
  2. cvGetSubRect(IplImage* img,CvMat* submat, CvRect rect);    //將原始IplImage*類型圖像按照rect尺寸截出矩形框出來,,并傳給CvMat* submat輸出,。  

  1. GradValue_level.at<float>(0,i) = (float)CV_MAT_ELEM( *averageValue_level, float,0, i+1 ) -(float)CV_MAT_ELEM( *averageValue_level, float,0, i );  
  1. //對于CvMat*類型矩陣通過CV_MAT_ELEM宏提取像素值或修改像素值,對于cv::Mat類圖像矩陣通過MatImage.at<type>(x,y)進行像素提取或修改像素值  

  1. rectangle(cv::Mat &img, Rect(Point, Size(int width,int height)),cv::Scalar &color, int thickness =1,int lineType = 8, int shift = 0);  
  1. //在輸入圖像cv::Mat img上畫出矩形框  
  1. circle(cv::Mat &img, cv::Point center, int Radius,const cv::Scalar &color, int thickness=1,int lineType =8, int shift=0);  
  1. //在圖像cv::Mat img上畫出圓心為Point center,,半徑為Radius的圓,。  








    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多