问题描述
- 关于使用opencv读图片的问题
-
![CSDN移动问答][1]小弟菜菜,在下面的程序中读入一幅图片的像素值后,然后再编译运行,读出来的值就跟上一次的不同了(但相差不多),在第三次至以后编译运行,读出的数值却和第二次相同了。程序最后面有一句保存图像的语句,但想着我没有修改图像啊,只是输出一下而已,为何酱紫啊??大神快快来你快快来...
// read_image.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "cxtypes.h"
#include
#include
using namespace std;int main(int argc, char* argv[])
{IplImage* src=cvLoadImage("F:01.jpg",CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR);//以载入图像(原始状态)
cvNamedWindow("win");
cvShowImage("win",src);
cvWaitKey(0);int x,y;
//ofstream f1("pixel_val.txt");
for(y=0;y!=1;y++)
{
unsigned char* row=(unsigned char*)(src->imageData+y*src->widthStep);
for(x=0;x!=24;x++)
{cout<<endl;
cout<<"x="<<x<<endl;
cout<<"before:"<<(int)row[3*x+0]<<" "<<(int)row[3*x+1]<<endl;
//f1<<(int)row[3*x+0]<<" "<<(int)row[3*x+1]<<" "<<(int)row[3*x+2]<<endl;}
}
cvSaveImage("F:01.jpg",src);//保存修改过的图片
cvReleaseImage(&src);//释放图像
cvDestroyWindow("win");//释放窗口
return 0;
}
解决方案
这个看起来没啥问题啊,你把图片贴上来看看