20160611

1.http://zhidao.baidu.com/link?url=CWwkRugDfeljFce1Bf_dTGXaxYHIUuJ1M78SO8fG0J67QVV6HW8ovosz9_q8eQ104xbaabs8V5gUJcPWp4VId4o55N3Mps7t7DqZKSpsoDm

opencv 中函数定义中 mat& a 与mat a 的区别在哪?

Mat a,意思是创建一个矩阵a。。。。。。Mat &a的意思是创建一个矩阵a的引用,一般用于传递函数的参数上面,比如输入一个图像矩阵a,然后在a上面进行诸如二值化,颜色缩减等函数之后再imshow(a)就会直观的显示出处理之后的图像,相当于克隆了一个a图像矩阵,在a上面怎么操作,源图像也会相应的变化。
2.ERROR	
	IntelliSense:  应用了多个从 "cv::Mat" 到 "<error-type>" 的转换函数: 
            函数 "cv::Mat::operator CvMat() const"
            函数 "cv::Mat::operator CvMatND() const"
            函数 "cv::Mat::operator IplImage() const"	e:\workkkkkkk\vs2013\HaniaojunImagePro\HaniaojunImagePro\HaniaojunImagePro.cpp	77	18	HaniaojunImagePro
		solve:应用子函数时RGB无类型;定义子函数放在调用之前比较保险;
3. IntelliSense:  函数调用中的参数太多
改函数名字
4.
s=cvGet2D(img,i,j);//访问RGB图像img图像的i行j列元素
 
B G R的值分别为s.val[0]    s.val[1]    s.val[2]

-2
  
  
  int  main()
 
     {    
 
         Mat img = imread( "lena.jpg" );
 
         imshow( "Lena Original" , img);
 
         for  ( int  row = 0; row < img.rows; row++)
 
         {
 
             for  ( int  col = 0; col < img.cols; col++)
 
             {    
 
                 /* 注意 Mat::at 函数是个模板函数, 需要指明参数类型, 因为这张图是具有红蓝绿三通道的图,
 
                    所以它的参数类型可以传递一个 Vec3b, 这是一个存放 3 个 uchar 数据的 Vec(向量). 这里
 
                    提供了索引重载, [2]表示的是返回第三个通道, 在这里是 Red 通道, 第一个通道(Blue)用[0]返回 */
 
                 if (img.at<Vec3b>(row, col)[2] > 128)
 
                     img.at<Vec3b>(row, col) = Vec3b(255, 255, 255);
 
             }
 
         }
 
         imshow( "Lena Modified" , img);
 
         cvWaitKey();
 
         return  0;
 
     }
unsigned char  b = (unsigned char )srcimage.GetImage()->imageData[0];
inline void cv3DoubleMatPrint( const CvMat* mat )
{
int i, j;
for( i = 0; i < mat->rows; i++ )
{
for( j = 0; j < mat->cols; j++ )
{
CvScalar scal = cvGet2D( mat, i, j );
printf( "(%f,%f,%f) ", scal.val[0], scal.val[1], scal.val[2] );
}
printf( "/n" );
}

}

-3

int  main(){
     vector< int > ivec;     //定义一个向量
     ivec.push_back(1);
     vector< int >::iterator it = ivec.begin();     //使用迭代器
     cout<<*it<<endl;     //输出向量中的首元素
     return  0;
for ( int  i=0;i<vector.size();i++)
{
    String str = (String)vector.get(i);
  
}

假如你存储的是string类型的 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值