opencv创建编写一个简单的图片查看器 opencv如何显示数组? opencv如何获取windows关联文件并打开? 中文编程到底好不好?

本文探讨了作者对中文编程的态度转变,认为在AI编程普及的背景下,中文编程具有潜力。文章强调了编程中的人机交互和代码可读性的价值,以OpenCV实例展示了一个简单的图像查看器,旨在鼓励开发者克服语言障碍,提高代码的可理解性。
摘要由CSDN通过智能技术生成

一开始我对中文编程有偏见,直到有一天,我发现我和计算机之间总隔着一层纸,我想了解他,可是,我被浩如烟海的英语文档给整自闭了,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个窗口。
不能放大,缩小,鼠标拖动图片等,但这是一个信心,成为你向图像处理前进的一点动力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值