#include <iostream>
#include <iomanip>
#include <fstream>
#include <cv.h>
#include <highgui.h>
using namespace std;
int main(int argc,char** argv)
{
IplImage* pImg;
ofstream fs(argv[2]);
if(!fs) return 1;
if( argc >= 2 && (pImg = cvLoadImage( argv[1], 0)) != 0 ) {
CvScalar s;
for(int i=0; i< pImg->height; ) {
for(int j=0; j< pImg->width; ) {
s=cvGet2D(pImg,i,j);
int a= s.val[0];
if(a<40) fs << "@";
else if(a>=40 && a<80) fs << "2";
else if(a>=80 && a<150) fs << "1";
else if(a>=150 && a<200) fs << ".";
else fs << " ";
j += 2;
}
fs << endl;
i += 4;
}
fs.close();
cvNamedWindow( "Window1", CV_WINDOW_AUTOSIZE );
cvShowImage( "Window1", pImg );
cvWaitKey(-1);
cvDestroyWindow( "Window1" );
cvReleaseImage( &pImg );
return 0;
}
}
编译时使用的是g++ pic.cpp -o pic -Wall -O3 -L"C:\OpenCv\lib" -I"C:\Opencv\include\opencv" -lcv -lcxcore -lhighgui
程序需要两个参数,一个图片名,一个文件名,用来保存转化的字符
例如 pic exm.jpg exm.txt
运行效果如下
当然,你得用等宽字体查看
呵呵,没太大意义,就是好玩