OpenCV对图像的光照归一化处理
2017-02-16 09:53
393 查看
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
#include <string>
using namespace std;
void main()
{
int i;
IplImage *pImageChannel[4] = {0,0,0,0};
int count = 15;
char *name = new char;
while(count<=17)
{
string FileName = "S010_001_015942";
itoa(count,name,10);
FileName = FileName + name;
FileName = FileName + string(".png");
IplImage *pSrcImage = cvLoadImage(FileName.c_str());
IplImage *pImage = cvCreateImage(cvGetSize(pSrcImage), pSrcImage->depth, pSrcImage->nChannels);
if(pSrcImage)
{
for( i=0; i<pSrcImage->nChannels; i++)
{
pImageChannel[i] = cvCreateImage( cvGetSize(pSrcImage), pSrcImage->depth, 1);
}
// 信道分离
cvSplit( pSrcImage, pImageChannel[0], pImageChannel[1],pImageChannel[2],NULL);
for( i = 0; i < pImage->nChannels; i++ )
{
//直方图均衡化
cvEqualizeHist(pImageChannel[i], pImageChannel[i]);
}
// 信道组合
cvMerge( pImageChannel[0], pImageChannel[1], pImageChannel[2],NULL,pImage);
// ……图像显示代码(略)
// 释放资源
for( i=0; i<pSrcImage->nChannels; i++)
{
if(pImageChannel[i])
{
cvReleaseImage( &pImageChannel[i] );
pImageChannel[i] = 0;
}
}
cvNamedWindow("1");
cvShowImage("1",pImage);
cvWaitKey();
cvDestroyWindow("1");
//
string saveFile = ".\\002\\histgram\\";
saveFile = saveFile + name;
saveFile = saveFile + ".bmp";
cvSaveImage(saveFile.c_str(),pImage);
count++;
cvReleaseImage( &pImage );
}
}
}
为什么总在cvSaveImage那个函数出现错误:
OpenCV提高对比度.exe 中的 0x5f9ed7af (highgui200d.dll) 处未处理的异常: 0xC0000005: 读取位置 0xed4674bb 时发生访问冲突
先留个档,以后继续处理
#include <highgui.h>
#include <stdio.h>
#include <string>
using namespace std;
void main()
{
int i;
IplImage *pImageChannel[4] = {0,0,0,0};
int count = 15;
char *name = new char;
while(count<=17)
{
string FileName = "S010_001_015942";
itoa(count,name,10);
FileName = FileName + name;
FileName = FileName + string(".png");
IplImage *pSrcImage = cvLoadImage(FileName.c_str());
IplImage *pImage = cvCreateImage(cvGetSize(pSrcImage), pSrcImage->depth, pSrcImage->nChannels);
if(pSrcImage)
{
for( i=0; i<pSrcImage->nChannels; i++)
{
pImageChannel[i] = cvCreateImage( cvGetSize(pSrcImage), pSrcImage->depth, 1);
}
// 信道分离
cvSplit( pSrcImage, pImageChannel[0], pImageChannel[1],pImageChannel[2],NULL);
for( i = 0; i < pImage->nChannels; i++ )
{
//直方图均衡化
cvEqualizeHist(pImageChannel[i], pImageChannel[i]);
}
// 信道组合
cvMerge( pImageChannel[0], pImageChannel[1], pImageChannel[2],NULL,pImage);
// ……图像显示代码(略)
// 释放资源
for( i=0; i<pSrcImage->nChannels; i++)
{
if(pImageChannel[i])
{
cvReleaseImage( &pImageChannel[i] );
pImageChannel[i] = 0;
}
}
cvNamedWindow("1");
cvShowImage("1",pImage);
cvWaitKey();
cvDestroyWindow("1");
//
string saveFile = ".\\002\\histgram\\";
saveFile = saveFile + name;
saveFile = saveFile + ".bmp";
cvSaveImage(saveFile.c_str(),pImage);
count++;
cvReleaseImage( &pImage );
}
}
}
为什么总在cvSaveImage那个函数出现错误:
OpenCV提高对比度.exe 中的 0x5f9ed7af (highgui200d.dll) 处未处理的异常: 0xC0000005: 读取位置 0xed4674bb 时发生访问冲突
先留个档,以后继续处理
相关文章推荐
- OpenCV实现对图像的光照归一化处理
- OpenCV实现对图像的光照归一化处理
- OPENCV用户手册之图像处理部分(之三):形态学操作(中文翻译)
- OPENCV用户手册之图像处理部分(之四):滤波器与色彩转换(中文翻译)
- 今天很高兴,我开始学习OpenGL,Opencv ,图像处理,direct3D
- openCV第五章/图像处理 -- 阈值化(自适应)
- 用opencv做图像处理的几点经验
- OPENCV用户手册之图像处理部分(之一):梯度、边缘与角点(中文翻译)
- 【数字图像处理】OpenCV最大化HSV图像的"S"和"V"部分
- opencv图像处理梯度边缘和角点
- 很好的OPENCV图像处理博客
- OpenCV处理kinect深度图,获取手掌骨架图像
- OpenCV 图像处理常用函数
- OpenCV学习笔记(8)VS2008 MFC下使用OpenCV2.0进行简单图像处理
- OpenCV----图像处理
- opencv图像处理梯度边缘和角点
- OPENCV用户手册之图像处理部分(之二):采样、差值与几何变换(中文翻译)
- opencv常用转换 opencv图像处理
- 关于图像采集卡采集到图像到内存后怎样用Opencv进行图像处理
- OpenCV 利用MFC的Picture控件显示和处理图像