1.http://zhidao.baidu.com/link?url=CWwkRugDfeljFce1Bf_dTGXaxYHIUuJ1M78SO8fG0J67QVV6HW8ovosz9_q8eQ104xbaabs8V5gUJcPWp4VId4o55N3Mps7t7DqZKSpsoDm
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类型的