您的位置:首页 > 其它

colorReduce8(cv::Mat image, int div=64) // using Mat_ iterator

2016-06-30 18:41 190 查看
#include <stdio.h>

#include "opencv2/core/core.hpp"

#include "opencv2/features2d/features2d.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/nonfree/nonfree.hpp"

#ifndef _DEBUG

#pragma  comment(lib,"IlmImf.lib")  

#pragma  comment(lib,"libjasper.lib")   

#pragma  comment(lib,"libjpeg.lib")  

#pragma  comment(lib,"libpng.lib")      

#pragma  comment(lib,"libtiff.lib") 

#pragma  comment(lib,"zlib.lib")  

#pragma  comment(lib,"opencv_calib3d2411.lib")

#pragma  comment(lib,"opencv_contrib2411.lib")

#pragma  comment(lib,"opencv_core2411.lib")

#pragma  comment(lib,"opencv_features2d2411.lib")

#pragma  comment(lib,"opencv_flann2411.lib")

#pragma  comment(lib,"opencv_gpu2411.lib")

#pragma  comment(lib,"opencv_highgui2411.lib")

#pragma  comment(lib,"opencv_imgproc2411.lib")

#pragma  comment(lib,"opencv_legacy2411.lib")

#pragma  comment(lib,"opencv_ml2411.lib")

#pragma  comment(lib,"opencv_nonfree2411.lib")

#pragma  comment(lib,"opencv_objdetect2411.lib")

#pragma  comment(lib,"opencv_ocl2411.lib")

#pragma  comment(lib,"opencv_photo2411.lib")

#pragma  comment(lib,"opencv_stitching2411.lib")

#pragma  comment(lib,"opencv_superres2411.lib")

#pragma  comment(lib,"opencv_ts2411.lib")

#pragma  comment(lib,"opencv_video2411.lib")

#pragma  comment(lib,"opencv_videostab2411.lib")

#else

#pragma  comment(lib,"zlibd.lib")

#pragma  comment(lib,"IlmImfd.lib")

#pragma  comment(lib,"libjasperd.lib")

#pragma  comment(lib,"libjpegd.lib")

#pragma  comment(lib,"libpngd.lib")

#pragma  comment(lib,"libtiffd.lib")

#pragma  comment(lib,"opencv_calib3d2411d.lib")

#pragma  comment(lib,"opencv_contrib2411d.lib")

#pragma  comment(lib,"opencv_core2411d.lib")

#pragma  comment(lib,"opencv_features2d2411d.lib")

#pragma  comment(lib,"opencv_flann2411d.lib")

#pragma  comment(lib,"opencv_gpu2411d.lib")

#pragma  comment(lib,"opencv_highgui2411d.lib")

#pragma  comment(lib,"opencv_imgproc2411d.lib")

#pragma  comment(lib,"opencv_legacy2411d.lib")

#pragma  comment(lib,"opencv_ml2411d.lib")

#pragma  comment(lib,"opencv_nonfree2411d.lib")

#pragma  comment(lib,"opencv_objdetect2411d.lib")

#pragma  comment(lib,"opencv_ocl2411d.lib")

#pragma  comment(lib,"opencv_photo2411d.lib")

#pragma  comment(lib,"opencv_stitching2411d.lib")

#pragma  comment(lib,"opencv_superres2411d.lib")

#pragma  comment(lib,"opencv_ts2411d.lib")

#pragma  comment(lib,"opencv_video2411d.lib")

#pragma  comment(lib,"opencv_videostab2411d.lib")

#endif

using namespace cv;

// Test 8

// using Mat_ iterator

void colorReduce8(cv::Mat image, int div=64) {

 // get iterators

 cv::Mat_<cv::Vec3b>::iterator it= image.begin<cv::Vec3b>();

 cv::Mat_<cv::Vec3b>::iterator itend= image.end<cv::Vec3b>();

 for ( ; it!= itend; ++it) {

  // process each pixel ---------------------

  (*it)[0]= (*it)[0]/div*div + div/2;

  (*it)[1]= (*it)[1]/div*div + div/2;

  (*it)[2]= (*it)[2]/div*div + div/2;

  // end of pixel processing ----------------

 }

}

int main(int argc, char** argv)

{

    Mat img1 = imread("lena.jpg");

    //Mat img2 = imread(argv[2], CV_LOAD_IMAGE_GRAYSCALE);

    if(img1.empty())

    {

        printf("Can't read one of the images\n");

        return -1;

    }

 Mat img2=img1.clone();

 colorReduce8(img1, 64);

    // drawing the results

    imshow("img1", img1);

    waitKey(0);

 imshow("img2", img2);

 waitKey(0);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: