表示得到了想要的处理效果:
直接写代码吧,为了把处理过图像中相关颜色进行二值化,或者三值化,哈哈,我自己定义滴:
#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;
}