一开始我对中文编程有偏见,直到有一天,我发现我和计算机之间总隔着一层纸,我想了解他,可是,我被浩如烟海的英语文档给整自闭了,inter的处理器手册,各种硬件指令手册,如果你想写操作系统,你会发现,计算机是一个无底洞。
1:中文编程,如果AI编程是对的,那么中文编程就一定是对的。计算机和人之间的交互是未来!你难道想写一辈子英文?你不想像写作文写小说一样写程序吗?人在35岁后对其他语言的学习能力会下降,你想到老还有精力去和年轻人比谁先啃下英语文档?
2:中文会不会出问题,函数和变量,基本是不会,函数最终会变成16进制随机码,变量会变成内存地址,基他的我认为“直接"文本替换"最好,但vs目前不支持单纯文本替换”
“文本替换”是目前最好中文编程方案,因为本质上是翻译,编译之前是英文,例如:一个函数名:篮球→预编译:basketball→二进制编译机器码/C等。
3.编程界的偏见和虚荣还消不了,老板说用“英文”就用英文。但是写博客,我不喜欢写注释。我希望观众可以像读小说一样读我写的程序。
#include "opencv2\opencv.hpp"
#include<iostream>
#include <windows.h>
#include <opencv2/core/utility.hpp>
using namespace std;
using namespace cv;
int 自动调整窗口大小 = 1;
string 窗口名字 = "图形";
string 文件的磁盘地址 = "E:/2023_8_16/yjfgjn.jpg";
Mat 图片文件对象;
Mat 显示的数组;
typedef unsigned char 正整数8位;
static 正整数8位 图片数组[900][1600][3];
void 创建窗口属性(string 窗口名字, int 窗口显示方式);
void 显示窗口(string 窗口名字, Mat 图片文件对象);
void 图片数组写入指定窗口方法(Mat 写入的图形类矩阵);
Mat 从磁盘读取图像文件(String 文件的磁盘地址, int 窗口显示属性);
int main(int 系统传递文件参数数量, char** 系统传递文件参数路径)
{
if (系统传递文件参数数量 > 1&& 系统传递文件参数路径[1]!=0)
{
文件的磁盘地址 = 系统传递文件参数路径[1];
//opencv如何获取windows关联文件并打开?
}
显示的数组 = Mat(900, 1600, CV_8UC3, 图片数组);//opencv如何显示数组?
图片文件对象 = 从磁盘读取图像文件(文件的磁盘地址, 自动调整窗口大小);
创建窗口属性(窗口名字, 自动调整窗口大小);
图片数组写入指定窗口方法(图片文件对象);
显示窗口(窗口名字, 显示的数组);
waitKey(0);
return 0;
};
unsigned int x = 0;
unsigned int y = 0;
static Vec3b 像素点 = {0,255,255};
unsigned int 写入区间x = 899;
unsigned int 写入区间y = 1600;
void 图片数组写入指定窗口方法(Mat 写入的图形类矩阵)
{
if (写入区间y>=写入的图形类矩阵.cols)
{
写入区间y = 写入的图形类矩阵.cols;
}
if (写入区间x>= 写入的图形类矩阵.rows)
{
写入区间x = 写入的图形类矩阵.rows-1;
}
循环900次:
if (y < 写入区间y)
{
像素点 = 写入的图形类矩阵.at<Vec3b>(x, y);
图片数组[x][y][0] = 像素点[0];
图片数组[x][y][1] = 像素点[1];
图片数组[x][y][2] = 像素点[2];
y = y + 1;
goto 循环900次;
}
if (x < 写入区间x && y >= 写入区间y)
{
x = x + 1;
y = 0;
//cout << "图片数组" << x << endl;
goto 循环900次;
}
}
void 创建窗口属性(string 窗口名字,int 窗口显示方式)
{
return namedWindow(窗口名字, 窗口显示方式);
}
void 显示窗口(string 窗口名字, Mat 图片文件对象 )
{
return imshow(窗口名字, 图片文件对象);
}
Mat 从磁盘读取图像文件(String 文件的磁盘地址,int 窗口显示属性)
{
return imread(文件的磁盘地址, 窗口显示属性);
}
windows的注册表需要关联文件等,在此不详细说了,opencv的安装,头文件和库。
效果
这是一个很简单的图片查看器,1600X900,只是把图片裁进了1个窗口。
不能放大,缩小,鼠标拖动图片等,但这是一个信心,成为你向图像处理前进的一点动力!