图像-关于使用opencv读图片的问题

问题描述

关于使用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;
}

解决方案

这个看起来没啥问题啊,你把图片贴上来看看

时间: 2024-09-08 09:22:02

图像-关于使用opencv读图片的问题的相关文章

OpenCV 对图片的基本操作(nice)

OpenCV 对图片的基本操作 输入/输出 图像 从文件加载图像 Mat img = imread(filename) 如果你加载的是 JPG 文件,将会默认创建一个 3 通道的图像,如果你需要灰度图,可以用: Mat img = imread(filename, 0); 注意 文件的根据市根据文件内容自动识别的(一般是前几个字节的内容) 将突破保存到文件: imwrite(filename, img); 注意 文件的格式是通过其扩展名进行识别. 注意 请使用 imdecode 和 imenco

初始化-MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以

问题描述 MFC 利用opencv显示图片,需要在窗体完成哪一步后才可以 对对话框创建流程不是太清楚. 下面代码只能通过按钮点击响应才可以,但直接放在对话框初始化以及onsize里面就不行. cv::Mat mat, mat2; mat = cv::imread("D:\test1.jpg", 1); if(! mat.data) { MessageBox(_T("error", "no image loaded!"), MB_OK); retu

Android OpenCv进行图片比对

OpenCv 对于图片有很多的处理方式,现在我想要实现俩张图片的比对. 首先要知道做个需要那些步骤: (1)加载俩张图片 (2)将两张图片转换为Mat矩阵 (3)把Mat矩阵的type转换为Cv_8uc1类型,然后转换为Cv_32F, 因为在c++代码中会判断他的类型. (4)通过OpenCv 来进行俩个矩阵的比较(俩个矩阵必须一样大小的高宽) 我使用的比较类型是Imgproc.CV_COMP_CORREL, double target = Imgproc.compareHist(mat, ma

vb.net(basler相机SDK抓取图像数据流后,将图片显示在picturebox中)

问题描述 vb.net(basler相机SDK抓取图像数据流后,将图片显示在picturebox中) vs2012,vb.net编程,basler相机的sdk取像得到数据流后basler有自己的方法显示图片,但我不要中他的方法,我要显示在自己的picturebox控件中,自己写了一段程序,如图,102行一直提示说参数无效,求解! 解决方案 图太小了,看不见.你可以先保存为bmp 用picturebox1.Image = Image.FromFile(文件)

人脸识别-大家帮忙看看我这段matlab,用pca处理图像,但是输出的图片为什么会是重复的三张?

问题描述 大家帮忙看看我这段matlab,用pca处理图像,但是输出的图片为什么会是重复的三张? function y=mypca() %%%%%%%%%%%%%%%%%%%%%%%%%PCA算法对人脸图像处理提取主成分程序 path = ['.']; % 提取当前目录 %读取图像 numimage=4; %4张人脸 imagepath=[path 'ORLORL001' '.bmp']; %第一张人脸文件的路径及文件名:D:PCAORLORL001.bmp immatrix=imread(im

vs2012配置opencv-vs2012配合opencv显示图片和视频时说没有导入进去

问题描述 vs2012配合opencv显示图片和视频时说没有导入进去 #include int main() { IplImage* img=cvLoadImage("D:FFOutputh010.bmp",0); if(!img) { printf("error"); } cvNamedWindow("test"); cvShowImage("test",img); cvWaitKey(0); cvReleaseImage(

街景图像红绿灯识别 opencv

问题描述 街景图像红绿灯识别 opencv 街景红绿灯图像中对红绿灯对红绿灯自动识别并在图像右下角用文字标出当前红绿灯的状态.用opencv编写.求这道题的解题思路或者代码. 解决方案 通过颜色判断吧,图像都有三个通道RGB,如果是绿色RGB值肯定是一种值,如果是红色RGB值肯定是另一种值, 解决方案二: 大致的思路我能知道 但是代码真心不会 老师什么都没教

socket-Socket+opencv发送图片问题

问题描述 Socket+opencv发送图片问题 客户端: IplImage src = cvLoadImage("2.jpg"); IpImage Send=*src; send(sockClient, (char)&Send, sizeof(Send)+1, 0); 服务端: char tempBuf[10000]; recv(sockConn, tempBuf, 10000, 0); IpImage recv; memcpy(&recv, tempBuf, siz

OpenCV问题集锦,图片显示不出来,WaitKey(0),imread()不能读图片,未经处理的异常,等问题集合

昨天根据uc伯克利的人工图像分割文件.seg,显示图像的时候调用了OpenCV的库函数,图片都能用imwrite写好,但是imshow死活显示不出来. 今天早上发现原来是imshow()后面应该加上:cvWaitKey(0); 下面两个帖子也是同样的问题: http://www.cnblogs.com/krisdy/archive/2009/05/26/1429448.html http://blog.163.com/yuyang_tech/blog/static/216050083201391