转载:OpenCV实现彩色图像转换为灰度图及二值化处理
(2013-04-22 11:34:49)
标签:
二值图opencv灰度图彩色图转化it |
分类: 计算机视觉 |
#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
//声明图像IplImage指针
IplImage* pSrcImg=NULL;
IplImage* pGrayImg=NULL;
IplImage* pBinaryImg=NULL;
int Thresh=127;//初始化滑动条位置
//滑动条响应函数
void onTrackerSlid(int thresh)
{
//将图像转化为二值图
pBinaryImg=cvCreateImage(cvGetSize(pSrcImg),pSrcImg->depth,pSrcImg->nChannels);
cvCopy(pSrcImg,pBinaryImg);//复制图像数据
CvScalar scalar;
int avg;
for(int i=0;iheight;i++)
{
for(int j=0;jwidth;j++)
{
scalar=cvGet2D(pBinaryImg,i,j);//获取点(i,j)的像素
avg=(scalar.val[0]+scalar.val[1]+scalar.val[2])/3;
if(avg
{
scalar.val[0]=scalar.val[1]=scalar.val[2]=0;
cvSet2D(pBinaryImg,i,j,scalar);
}
else
{
scalar.val[0]=scalar.val[1]=scalar.val[2]=255;
cvSet2D(pBinaryImg,i,j,scalar);
}
}
}
//显示图像
cvShowImage("二值化图像",pBinaryImg);
}
int main(int argc, char** argv)
{
}
前一篇:[转载]草图搜索的魅力与挑战
后一篇:细化算法