OpenCV-Mat方式的获取图片的像素(一)

作为OpenCV基础知识中的重中之重,像素值的读写需要我们很用心的掌握。

1、读取原图


    const char filename[] = "/Users/linwang/Desktop/Lena.png";
    Mat Im = imread(filename);
    cout<<"Im.dims  = "<


OpenCV-Mat方式的获取图片的像素(一)_第1张图片


OpenCV-Mat方式的获取图片的像素(一)_第2张图片


2、最朴素的指针偏移,读取像素点值,修改Lena


    /*2.采用最朴素的方式修改Lena,获得Test*/
    Mat test_im = Im.clone();
    for (int i = 0; i

OpenCV-Mat方式的获取图片的像素(一)_第3张图片

3、采用C++的Vec来读取像素点数据


   /*1.采用C++模版 STL的方式 修改Lena原图,得到New*/
    Mat copy_im = Im.clone();
    for (int i = 0; i(i,j) = pixel;
        }
    }
    cvNamedWindow("New-Lena");
    imshow("New-Lena", copy_im);




OpenCV-Mat方式的获取图片的像素(一)_第4张图片


4、迭代器方式遍历图像

    /*3.迭代器方法遍历图像像素*/
    Mat IterIm = Im.clone();
    MatIterator_ IterBegin,IterEnd;   //迭代器
    for(IterBegin = IterIm.begin(),IterEnd = IterIm.end();IterBegin!=IterEnd;++IterBegin)
    {
        (*IterBegin)[0] = rand()%255;
        (*IterBegin)[1] = rand()%255;
        (*IterBegin)[2] = rand()%255;
    }
    cvNamedWindow("IterImg");
    imshow("IterImg", IterIm);
    cvWaitKey(0);


你可能感兴趣的:(图像识别)