强大的opencv
表示得到了想要的处理效果:
直接写代码吧,为了把处理过图像中相关颜色进行二值化,或者三值化,哈哈,我自己定义滴:
#include "cv.h" #include "highgui.h" #include <fstream> #include <iostream> using namespace std; int main() { IplImage* img = cvLoadImage("E:\\test.jpg", 1); /* always check */ assert(img); int nWidth = img->width; int nHeight = img->height; int step = img->widthStep; int channels = img->nChannels; int i,j; int sum1 = 0,sum2 = 0,sum3 = 0,sum4 = 0,sum5 = 0; for( i=0;i<nHeight;i++) for( j=0;j<nWidth;j++) { CvScalar s = cvGet2D(img,i,j); if(sqrt(pow((s.val[0]-29),2)+pow(s.val[1]-144,2)+pow(s.val[2]-255,2))<30 || sqrt(pow((s.val[0]-255),2)+pow(s.val[1]-2,2)+pow(s.val[2]-199,2))<30) { /* s.val[0]=0; s.val[1]=0; s.val[2]=0; cvSet2D(img, i, j, s);*/ } else { s.val[0]=255; s.val[1]=255; s.val[2]=255; cvSet2D(img, i, j, s); } } cvSaveImage("E:\\m3.bmp",img); cvShowImage("Image",img); cvWaitKey(0); //等待按键 cvDestroyWindow( "Image" );//销毁窗口 return 0; }