功能介绍:对文件夹下的图片存储指定坐标点的像素值至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");
}