先前进行图像二值化处理时都是通过 windows.h 中 api 进行编程,现在用
Opencv 二值化图像更简单,代码如下:
1. #include<cv.h>
2. #include<highgui.h>
3. #include<cxcore.h>
4.
5. #include<iostream>
6. usingnamespacestd;
7.
8. intmain()
9. {
10.IplImage*img=cvLoadImage("lena.jpg",-1);
11.IplImage*biimg=cvCreateImage(cvGetSize(img),img->depth,img-
>nChannels);
12.CvScalars;
13.intsum=0;
14.
15.for(inti=0;i<img->height;i++)
16.{
17.for(intj=0;j<img->width;j++)
18.{
19.s=cvGet2D(img,i,j);
20.//cout<<s.val[0]<<""<<s.val[1]<<""<<s.val[2]<<endl;
21.sum=(s.val[0]+s.val[1]+s.val[2])/3;
22.if(sum>128)
23.{
24.s.val[0]=s.val[1]=s.val[2]=255;
25.cvSet2D(biimg,i,j,s);
26.}
27.else
28.{
29.s.val[0]=s.val[1]=s.val[2]=0;
30.cvSet2D(biimg,i,j,s);
31.}
32.}
33.}
34.
35.cvSaveImage("new.jpg",biimg);
36.
37.cvNamedWindow("SourceImage");