zoukankan      html  css  js  c++  java
  • 图像图片批量读取并保存某一文件夹下图片的像素值

    时间紧张,先记一笔,后续优化与完善。

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

    文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗   
      写字楼里写字间,写字间里程序员;
      程序人员写程序,又拿程序换酒钱。
      酒醒只在网上坐,酒醉还来网下眠;
      酒醉酒醒日复日,网上网下年复年。
      但愿老死电脑间,不愿鞠躬老板前;
      奔驰宝马贵者趣,公交自行程序员。
      别人笑我忒疯癫,我笑自己命太贱;
      不见满街漂亮妹,哪个归得程序员。

    --------------------------------- 原创文章 By 图像和图片 ---------------------------------

  • 相关阅读:
    有效获取状态栏(StatusBar)高度
    各种数据库连接
    Spring AOP 原理
    Spring ioc 原理
    转载的别人的ajax跨域解决方法
    如何监听input的脚本赋值
    JAVA之Socket编程
    JAVA中的多线程
    JAVA文件操作
    实验三 kali下metasploit的漏洞攻击实践
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3095861.html
Copyright © 2011-2022 走看看