学习opencv当然从最简单的彩色图转灰度图以及二值化开始。在这里,我们需要注意的一个地方是在对灰度图进行二值化处理(阈值用滚动条)。
首先我们完成第一部分:读取一张彩色图片,转换成灰度图并保存
代码如下,还是比较容易懂得
// test.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include "Windows.h"
#include <iostream>
#include "cv.h"//opencv的库,同下
#include "highgui.h"
using namespace std;
int main(int argc, char* argv[])
{
IplImage *image;//初始化保存彩色图
IplImage *result;//初始化保存灰度图
image=cvLoadImage("D:\\test.jpg",-1);//从本地读取彩色图
//注意指针变量一定要先初始化才能使用,否则崩溃
//灰度转换时通道一定要设置正确
int channel=1;//image->nChannels;
int depth=image->depth;
CvSize sz;
sz.width=image->width;//宽度
sz.height=image->height;//高度
result=cvCreateImage(sz,depth,channel);//生成image
cvCvtColor(image,result,CV_BGR2GRAY);//转换成灰度图
cvNamedWindow("original",1);//窗口名称
cvShowImage("original",im