批量读取并保存某一文件夹下图片的像素值

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kobesdu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值