cv::Mat访问元素的方法


#include "opencv2/opencv.hpp"
#include <iostream>


using namespace std;
using namespace cv;
 
int main(int argc,char** argv)
{


const char* filename = "google.png";

//CV_8UC3
//相应的CV_8SC3---Vec3s
//相应的CV_16UC3---Vec3w
Mat mat_CV_8UC3 = imread(filename,IMREAD_COLOR);
   for( size_t nrow = 0; nrow < mat_CV_8UC3.rows; nrow++)
    {
  for(size_t ncol = 0; ncol < mat_CV_8UC3.cols; ncol++)
  {
  Vec3i bgr = mat_CV_8UC3.at<Vec3b>(nrow,ncol);//用Vec3b也行
  cout   << "("<<bgr.val[0]<<","
  <<bgr.val[1]<<","
  <<bgr.val[2]<<")";
  }
  cout << endl;
    }
    
    for( size_t nrow = 0; nrow < mat_CV_8UC3.rows; nrow++)
    {
    uchar* data = mat_CV_8UC3.ptr<uchar>(nrow);
  for(size_t ncol = 0; ncol < mat_CV_8UC3.cols * mat_CV_8UC3.channels(); ncol++)
  {
cout << int( data[ncol] ) ;
  }
  cout << endl;
    }


   //------CV_8UC1----------start---
   //
Mat mat_CV_8UC1 = imread(filename,IMREAD_GRAYSCALE);
   for( size_t nrow = 0; nrow < mat_CV_8UC1.rows; nrow++)
   {
  for(size_t ncol = 0; ncol < mat_CV_8UC1.cols; ncol++)
  {
  uchar val = mat_CV_8UC1.at<uchar>(nrow,ncol);
  //
  cout << (int(val) > 200 ? 1 :0) ;//cout<<int(val)<< endl ;
  }
  cout << endl ;
   }
   cout << endl;


    for ( size_t row = 0 ; row < mat_CV_8UC1.rows ; ++row) 
    {
uchar* ptr = mat_CV_8UC1.ptr<uchar>(row);
for ( size_t col = 0 ; col < mat_CV_8UC1.cols ; ++col) 
{
cout << ( int(ptr[col]) > 200 ? 1 :0) ;//cout<<int(val)<< endl ;
}
cout << "\n" ;
}
cout << endl;

   MatIterator_<uchar> it = mat_CV_8UC1.begin<uchar>(), it_end = mat_CV_8UC1.end<uchar>();
   for(int cnt = 1; it != it_end; ++it)
    {
      cout << ( int(*it) > 200 ? 1 : 0) ;
      if( (cnt++ % mat_CV_8UC1.cols) ==0 )
      cout << endl;    
    }
   //------CV_8UC1----------end---   


    
  return 0;

}


原文地址:http://blog.csdn.net/moc062066/article/details/6949826

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值