功能介绍:对文件夹下的图片存储指定坐标点的像素值至txt文件中~
// 存储文件夹下图片RGB值至文本中.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<stdio.h> #include"stdlib.h" //system需要调用这个 #include "stdafx.h" #include "cv.h" #include "highgui.h" #include <string> #include<windows.h> #include <WinBase.h> #include <ctime> #include "highgui.h" #include <iostream> #include <fstream> #include <ml.h> using namespace std; int main( int argc, char** argv ) { int image_id = 1; char filename[256]; char filename2[256]; char winname[256]; IplImage *image=0,*imageresize=0; sprintf(filename , "D:\\My Documents\\Visual Studio 2008\\Projects\\存储文件夹下图片RGB值至文本中\\截图\\%d.bmp" , image_id ); IplImage* img = cvLoadImage(filename); ofstream fout("Bmat.txt"); /* 保存样本 */ CvScalar s; cout<<"\n 开始保存咯\n"; int q=0; while(img) { sprintf(winname , "D:\\My Documents\\Visual Studio 2008\\Projects\\存储文件夹下图片RGB值至文本中\\截图\\%d.bmp" , image_id ); IplImage* img = cvLoadImage(winname); CvScalar s; if (!img)//若无此步,会在最后一个循环时由于下一句的img变量不存在而报错! break;//若无此步,会在最后一个循环时由于下一句的img变量不存在而报错! s=cvGet2D(img,3,19); //获取src图像中坐标为(i,j)的像素点的值 //s.val[0] 代表src图像BGR中的B通道的值~ fout<<s.val[0]; fout<<"\t"; fout<<s.val[1]; fout<<"\t"; fout<<s.val[2]; fout<<"\t"; fout<<"1\n"; cvSet2D(img,3,19,s); //set the (i,j) pixel value q++; s=cvGet2D(img,6,19); //获取src图像中坐标为(i,j)的像素点的值 //s.val[0] 代表src图像BGR中的B通道的值~ fout<<s.val[0]; fout<<"\t"; fout<<s.val[1]; fout<<"\t"; fout<<s.val[2]; fout<<"\t"; fout<<"1\n"; cvSet2D(img,6,19,s); //set the (i,j) pixel value q++; s=cvGet2D(img,5,25); //获取src图像中坐标为(i,j)的像素点的值 //s.val[0] 代表src图像BGR中的B通道的值~ fout<<s.val[0]; fout<<"\t"; fout<<s.val[1]; fout<<"\t"; fout<<s.val[2]; fout<<"\t"; fout<<"1\n"; cvSet2D(img,5,25,s); //set the (i,j) pixel value q++; cvReleaseImage(&img); image_id++; sprintf(filename , "D:\\My Documents\\Visual Studio 2008\\Projects\\存储文件夹下图片RGB值至文本中\\截图\\%d.bmp" , image_id ); } cout<<"\n 保存完毕! \n"; cout<<"矩阵一共有"<<q<<"行"<<'\n'; system("PAUSE"); }