1.
/*
本程序只实现了a和b,读者可自行实现c和d
*/
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
const int display_height = 500;
const int display_weight = 500;
vector<cv::Mat1b> numbers;
void init_numbers()
{
//init numbers
for (int i = 0; i < 11; i++)
numbers.push_back(cv::Mat1b::zeros(20, 10));
//0:
for (int i = 2; i < 8; i++)
{
numbers[0].at<unsigned char>(2, i) = 255;
numbers[0].at<unsigned char>(17, i) = 255;
}
for (int i = 3; i < 17; i++)
{
numbers[0].at<unsigned char>(i, 2) = 255;
numbers[0].at<unsigned char>(i, 7) = 255;
}
//1:
for (int i = 2; i < 8; i++)
{
numbers[1].at<unsigned char>(17, i) = 255;
}
for (int i = 3; i < 17; i++)
{
numbers[1].at<unsigned char>(i, 5) = 255;
}
numbers[1].at<unsigned char>(5, 2) = 255;
numbers[1].at<unsigned char>(4, 3) = 255;
numbers[1].at<unsigned char>(3, 4) = 255;
numbers[1].at<unsigned char>(2, 5) = 255;
//2:
for (int i = 2; i < 8; i++)
{
numbers[2].at<unsigned char>(2, i) = 255;
numbers[2].at<unsigned char>(9, i) = 255;
numbers[2].at<unsigned char>(17, i) = 255;
}
for (int i = 3; i < 9; i++)
{
numbers[2].at<unsigned char>(i, 7) = 255;
}
for (int i = 10; i < 17; i++)
{
numbers[2].at<unsigned char>(i, 2) = 255;