• [奇怪的东西]terminal烂苹果


    共享代码用~

     1 #pragma once
     2 #pragma warning(disable:4996)
     3 #include "convert_image.hpp"
     4 #include <Windows.h>
     5 #include <iostream>
     6 #include <string>
     7 #include <istream>
     8 #include <ostream>
     9 #include <fstream>
    10 #include <sstream>
    11 #include <vector>
    12 using namespace std;
    13 
    14 class Play {
    15 public:
    16     const int total = 6570;
    17     void Init(string inputPath) {
    18         ifstream is;
    19         char tmp[65535];
    20         src.clear();
    21         for (int k = 1; k <= total; k++) {
    22             is.open(inputPath + getTextFileName(k));
    23             src.push_back(vector<string>());
    24             size_t n = src.size() - 1;
    25             src[n].clear(); memset(tmp, 0, sizeof(tmp));
    26             while (is.getline(tmp, 65535)) {
    27                 src[n].push_back(tmp);
    28                 memset(tmp, 0, sizeof(tmp));
    29             }
    30             is.close();
    31         }
    32     }
    33     void Show() {
    34         getchar();
    35         system("cls");
    36         HANDLE hout;
    37         COORD pos = {0, 0};
    38         for (int i = 0; i < src.size(); i++) {
    39             hout = GetStdHandle(STD_OUTPUT_HANDLE);
    40             SetConsoleCursorPosition(hout, pos);
    41             SetConsoleTextAttribute(hout, 0x0f);
    42             for (int j = 0; j < src[i].size(); j++) printf("%s
    ", src[i][j].c_str());
    43             Sleep(22);
    44         }
    45     }
    46 protected:
    47     vector<vector<string>> src;
    48     string getTextFileName(int x) {
    49         stringstream ss;
    50         string file;
    51         ss << x; ss >> file;
    52         file += ".txt";
    53         return file;
    54     }
    55 };
    56 
    57 
    58 int main() {
    59     //ConvertSize::Do("../pic/","../done/", 160, 120);
    60     //ConvertType::Do("../done/", "../digit/", 160, 120);
    61     
    62     Play player;
    63     player.Init("../digit/");
    64     player.Show();
    65 }
    main.cpp
     1 #include <iostream>
     2 #include <string>
     3 #include <istream>
     4 #include <ostream>
     5 #include <fstream>
     6 #include <sstream>
     7 #include <vector>
     8 #include <opencv.hpp>
     9 
    10 using namespace cv;
    11 using namespace std;
    12 
    13 class Utils {
    14 public:
    15     static const int total = 6570;
    16     static string getFileName(int x) {
    17         stringstream ss;
    18         string file;
    19         ss << x; ss >> file;
    20         file += ".jpg";
    21         return file;
    22     }
    23     static void saveImage(string outputPath, Mat& dst) {
    24         imwrite(outputPath, dst);
    25     }
    26 };
    27 
    28 class ConvertSize : public Utils {
    29 public:
    30     static void Do(string inputPath, string outputPath, size_t width, size_t height) {
    31         Mat dst;
    32         string fileName, tmp;
    33         for (int i = 1; i <= total; i++) {
    34             fileName = getFileName(i);
    35             dealSize(inputPath + fileName, dst, Size(width, height));
    36             saveImage(outputPath + fileName, dst);
    37         }
    38     }
    39 protected:
    40     static void dealSize(string inputPath, Mat& dst, Size size) {
    41         Mat src; dst = Mat();
    42         src = imread(inputPath);
    43         resize(src, dst, size);
    44     }
    45 };
    46 
    47 class ConvertType : public Utils {
    48 public:
    49     static void Do(string inputPath, string outputPath, size_t width, size_t height) {
    50         string fileName;
    51         for (int i = 1; i <= total; i++) {
    52             fileName = getFileName(i);
    53             dealType(inputPath + fileName, outputPath + fileName, Size(width, height));
    54         }
    55     }
    56 protected:
    57     // 1 : dark 0 : light
    58     static void dealType(string inputPath, string outputPath, Size size) {
    59         outputPath.pop_back(); outputPath.pop_back(); outputPath.pop_back();
    60         outputPath += "txt";
    61         Mat src = imread(inputPath);
    62         vector<vector<char> > dst;
    63         for (int i = 0; i < src.rows; i++) {
    64             dst.push_back(vector<char>());
    65             for (int j = 0; j < src.cols; j++) {
    66                 auto tot = src.at<Vec3b>(i, j)[0] + src.at<Vec3b>(i, j)[1] + src.at<Vec3b>(i, j)[2];
    67                 if (tot / 3 > 200) dst[i].push_back(' ');
    68                 else dst[i].push_back('0');
    69             }
    70         }
    71         ofstream of;
    72         of.open(outputPath);
    73         for (int i = 0; i < dst.size(); i++) {
    74             for (int j = 0; j < dst[i].size(); j++) {
    75                 of << dst[i][j];
    76             }
    77             of << endl;
    78         }
    79         of.close();
    80     }
    81 };
    convert_image.hpp
  • 相关阅读:
    Sliverlight之 矢量绘图
    Silverlight之 xaml布局
    七天学会ASP.NET MVC(七)——创建单页应用
    MVC视图之间调用方法总结
    C#取得程序的根目录以及判断文件是否存在
    七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
    [C#] .NET4.0中使用4.5中的 async/await 功能实现异步
    C#中StreamReader读取中文文本出现乱码的解决方法
    七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/kirai/p/5928335.html
Copyright © 2020-2023  润新知