▼页尾

使用OpenCv把图片转为字符画

#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;
    }
}
我的OpanCv装在C盘

编译时使用的是g++ pic.cpp -o pic -Wall  -O3 -L"C:\OpenCv\lib" -I"C:\Opencv\include\opencv" -lcv -lcxcore -lhighgui

程序需要两个参数,一个图片名,一个文件名,用来保存转化的字符

例如  pic exm.jpg exm.txt

 

运行效果如下

 

 

当然,你得用等宽字体查看

呵呵,没太大意义,就是好玩

posted @ 2010-12-01 21:09  xiatwhu  阅读(1381)  评论(0编辑  收藏  举报
▲页首
西