营销型门户网站建设方案/淘宝关键词搜索量查询工具

营销型门户网站建设方案,淘宝关键词搜索量查询工具,东莞免费建站在线咨询,在婚恋网站上做红娘怎么样一、条形码 函数介绍 create_bar_code_model * 1.创建条码读取器的模板 * 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空 * 参数二:针对条形码模型进行调整 * 参数三:条形码模型的句柄。 create_bar_code_model (…

一、条形码

函数介绍

create_bar_code_model

* 1.创建条码读取器的模板
* 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空
* 参数二:针对条形码模型进行调整
* 参数三:条形码模型的句柄。
create_bar_code_model ([], [], BarCodeHandle)

 set_bar_code_param

* 参数一:条形码模型的句柄。
* 参数二:通用参数的名称,针对查找和解码条形码进行了调整
* 参数三:通用参数的值
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)

find_bar_code

* 3.在图像中读取条码数据和数据区域
* 参数一:要查找的图片
* 参数二:条码数据区域
* 参数三:条码模板句柄
* 参数四:条码类型
* 参数五:读取结果
find_bar_code (ImageReduced2, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)

效果 

 代码

* 1.创建条码读取器的模板
* 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空
* 参数二:针对条形码模型进行调整
* 参数三:条形码模型的句柄。
create_bar_code_model ([], [], BarCodeHandle)dev_set_color ('green')
dev_set_draw ('margin')* 2.配置解码方式
* 参数一:条形码模型的句柄。
* 参数二:通用参数的名称,针对查找和解码条形码进行了调整
* 参数三:通用参数的值
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)
read_image (Image, 'D:/workplace/字符识别/Image_20250114144355733.bmp')
gen_rectangle2 (ROI_0, 2704.8, 2530.15, rad(0.89529), 882.925, 59.4154)
reduce_domain (Image, ROI_0, ImageReduced2)* 用于将显示窗口的大小调整到适合图像大小的尺寸。
dev_resize_window_fit_image (ImageReduced2, 0, 0, -1, -1)* 3.在图像中读取条码数据和数据区域
* 参数一:要查找的图片
* 参数二:条码数据区域
* 参数三:条码模板句柄
* 参数四:条码类型
* 参数五:读取结果
find_bar_code (ImageReduced2, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
area_center (SymbolRegions, Area, Row, Column)dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
dev_display (SymbolRegions)
disp_message (WindowHandle, DecodedDataStrings, 'image', Row+200, Column-500, 'black', 'true')

二、二维码

函数介绍:

create_data_code_2d_model

 *创建二维码模型* 创建二维码模型* 参数一:二维码类型* 参数二:通用参数的名称 针对二维数据代码模型进行了调整。* 参数三:针对二维数据代码模型进行了调整。* 参数四:数据代码模型的句柄。create_data_code_2d_model (_codeMode[Index1], 'default_parameters', 'maximum_recognition', DataCodeHandle)

 find_data_code_2d

    *检测二维码,最多可以检测到10个* 查找图形中二维码,并获取信息* 参数一:图片* 参数二:围绕成功解码数据的 XLD 轮廓 代码符号。* 参数三:二维码模型的句柄。* 参数四:参数的名称 控制操作员的行为。* 参数五:可选泛型参数的值。* 参数六:所有成功解码的二维数据代码的句柄 符号。* 参数七:所有检测到的二维数据代码的解码数据字符串 图像中的符号。find_data_code_2d (ImageEmphasize, SymbolXLDs, DataCodeHandle, 'stop_after_result_num', 10, ResultHandles, \DecodedDataStrings)

效果1: 

效果2

代码


* 二维码读取
read_image (Image, 'C:/Users/Albert/Desktop/qr/2.bmp')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*创建二维码类型列表
_codeMode:=['Aztec Code', 'Data Matrix ECC 200', 'GS1 Aztec Code', 'GS1 DataMatrix', \'GS1 QR Code', 'Micro QR Code', 'PDF417', 'QR Code']
*图像放大1.5倍
zoom_image_factor (Image, ImageZoomed, 1.5, 1.5, 'constant')
*图像锐化
emphasize (ImageZoomed, ImageEmphasize, 20, 20, 1)
*遍历二维码类型列表
for Index1 := 0 to |_codeMode| by 1*创建二维码模型* 创建二维码模型* 参数一:二维码类型* 参数二:通用参数的名称 针对二维数据代码模型进行了调整。* 参数三:针对二维数据代码模型进行了调整。* 参数四:数据代码模型的句柄。create_data_code_2d_model (_codeMode[Index1], 'default_parameters', 'maximum_recognition', DataCodeHandle)*设置超时500msset_data_code_2d_param (DataCodeHandle, 'timeout', 500)*检测二维码,最多可以检测到10个* 查找图形中二维码,并获取信息* 参数一:图片* 参数二:围绕成功解码数据的 XLD 轮廓 代码符号。* 参数三:二维码模型的句柄。* 参数四:参数的名称 控制操作员的行为。* 参数五:可选泛型参数的值。* 参数六:所有成功解码的二维数据代码的句柄 符号。* 参数七:所有检测到的二维数据代码的解码数据字符串 图像中的符号。find_data_code_2d (ImageEmphasize, SymbolXLDs, DataCodeHandle, 'stop_after_result_num', 10, ResultHandles, \DecodedDataStrings)*获取当前图像的二维码类型code_type := _codeMode[Index1]*如果检测到图像有二维码,就显示在窗体上if (|DecodedDataStrings| > 0)disp_message (WindowHandle, code_type+':'+DecodedDataStrings, 'window', 12, 12, 'black', 'true')endif
endfordev_clear_window ()

三、csharpopencv 识别二维码

 

C#中生成二维码(QR码)与读取二维码内容_c#将字符串生成二维码图片-CSDN博客

实用主义,完全是按照上面这位老哥抄的

 

gitee如下: 

OCRQR: 有百度的飞浆 C# opencv、以及其他开源软件的集合

四、全部代码

* 1.创建条码读取器的模板
* 参数一:通用参数的名称,针对条形码模型进行调整。默认值为空
* 参数二:针对条形码模型进行调整
* 参数三:条形码模型的句柄。
create_bar_code_model ([], [], BarCodeHandle)dev_set_color ('green')
dev_set_draw ('margin')* 2.配置解码方式
* 参数一:条形码模型的句柄。
* 参数二:通用参数的名称,针对查找和解码条形码进行了调整
* 参数三:通用参数的值
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)
read_image (Image, 'D:/workplace/字符识别/Image_20250114144355733.bmp')
gen_rectangle2 (ROI_0, 2704.8, 2530.15, rad(0.89529), 882.925, 59.4154)
reduce_domain (Image, ROI_0, ImageReduced2)* 用于将显示窗口的大小调整到适合图像大小的尺寸。
dev_resize_window_fit_image (ImageReduced2, 0, 0, -1, -1)* 3.在图像中读取条码数据和数据区域
* 参数一:要查找的图片
* 参数二:条码数据区域
* 参数三:条码模板句柄
* 参数四:条码类型
* 参数五:读取结果
find_bar_code (ImageReduced2, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)
area_center (SymbolRegions, Area, Row, Column)dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Image)
dev_display (SymbolRegions)
disp_message (WindowHandle, DecodedDataStrings, 'image', Row+200, Column-500, 'black', 'true')* 4.使用完毕,删除条码匹配模板read_image (Image1111, 'D:/workplace/字符识别/1111.jpg')
rgb1_to_gray (Image1111, GrayImage)
gen_rectangle1 (ROI_0, 76.0361, 119.731, 257.755, 779.377)
reduce_domain (GrayImage, ROI_0, ImageReduced)
threshold (ImageReduced, Region, 0, 155)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, ['area','contlength'], 'and', [490.84,114.53], [50000,2051.7])
sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'row')
read_ocr_class_mlp ('Document_0-9A-Z_NoRej.omc', OCRHandle)
do_ocr_multi_class_mlp (SortedRegions, ImageReduced, OCRHandle, Class, Confidence)*汉字识别
read_image (Image22, 'D:/workplace/字符识别/22.png')
rgb1_to_gray (Image22, GrayImage1)
gen_rectangle1 (ROI_0, 21.3781, 182.366, 148.383, 1159.65)
reduce_domain (GrayImage1, ROI_0, ImageReduced1)
threshold (ImageReduced1, Region1, 128, 255)
closing_circle (Region1, RegionClosing, 3.5)
connection (RegionClosing, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 150, 99999)
sort_region (SelectedRegions1, SortedRegions1, 'first_point', 'true', 'column')
dev_display (ImageReduced1)
words:=['国','外','电','子','与','通','信','教','材','系','列']
for Index := 1 to |words| by 1* 按顺序拿到单个字符select_obj (SortedRegions1, obj, Index)append_ocr_trainf (obj, ImageReduced1, words[Index-1], 'D:/workplace/字符识别/trainChinese.trf')
endfor*读取训练文件
read_ocr_trainf_names ('D:/workplace/字符识别/trainChinese.trf', CharacterNames, CharacterCount)
*创建模型
create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, 80, 'none', 10, 42, OCRHandle1)* 训练模型
trainf_ocr_class_mlp (OCRHandle1, 'D:/workplace/字符识别/trainChinese.trf', 200, 1, 0.01, Error, ErrorLog)*识别:
do_ocr_multi_class_mlp (SortedRegions1, ImageReduced1, OCRHandle1, Class1, Confidence1)* 二维码读取
read_image (Image, 'C:/Users/Albert/Desktop/qr/1.jpg')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
*创建二维码类型列表
_codeMode:=['Aztec Code', 'Data Matrix ECC 200', 'GS1 Aztec Code', 'GS1 DataMatrix', \'GS1 QR Code', 'Micro QR Code', 'PDF417', 'QR Code']
*图像放大1.5倍
zoom_image_factor (Image, ImageZoomed, 1.5, 1.5, 'constant')
*图像锐化
emphasize (ImageZoomed, ImageEmphasize, 20, 20, 1)
*遍历二维码类型列表
for Index1 := 0 to |_codeMode| by 1*创建二维码模型* 创建二维码模型* 参数一:二维码类型* 参数二:通用参数的名称 针对二维数据代码模型进行了调整。* 参数三:针对二维数据代码模型进行了调整。* 参数四:数据代码模型的句柄。create_data_code_2d_model (_codeMode[Index1], 'default_parameters', 'maximum_recognition', DataCodeHandle)*设置超时500msset_data_code_2d_param (DataCodeHandle, 'timeout', 500)*检测二维码,最多可以检测到10个* 查找图形中二维码,并获取信息* 参数一:图片* 参数二:围绕成功解码数据的 XLD 轮廓 代码符号。* 参数三:二维码模型的句柄。* 参数四:参数的名称 控制操作员的行为。* 参数五:可选泛型参数的值。* 参数六:所有成功解码的二维数据代码的句柄 符号。* 参数七:所有检测到的二维数据代码的解码数据字符串 图像中的符号。find_data_code_2d (ImageEmphasize, SymbolXLDs, DataCodeHandle, 'stop_after_result_num', 10, ResultHandles, \DecodedDataStrings)*获取当前图像的二维码类型code_type := _codeMode[Index1]*如果检测到图像有二维码,就显示在窗体上if (|DecodedDataStrings| > 0)disp_message (WindowHandle, code_type+':'+DecodedDataStrings, 'window', 12, 12, 'black', 'true')endif
endfordev_clear_window ()
stop ()* 1 读取条形码* 创建一个条形码处理模型,这里使用默认参数。
create_bar_code_model([], [], BarCodeHandle)
* 设置参数,使得在找到第一个条形码后停止搜索,因为我们期望每张图像中只有一个条形码。
set_bar_code_param(BarCodeHandle, 'stop_after_result_num', 1)
* 减少最小代码长度到1个字符,因为有些2/5工业条形码可能只有一个数字。
* 注意:在实际应用中不推荐这样做,因为它可能会导致更多的误读。
set_bar_code_param_specific(BarCodeHandle, '2/5 Industrial', 'min_code_length', 1)
* 关闭任何已打开的窗口,以确保新窗口可以被正确创建。
dev_close_window()
* 打开一个新的图形窗口,用于显示处理结果。
* 参数分别是:窗口的左上角坐标 (0, 0),宽度 (120),高度 (300),背景颜色 ('black'),以及返回的窗口句柄 (WindowHandle)。
dev_open_window(0, 0, 120, 300, 'black', WindowHandle)
* 设置显示字体大小为14,字体类型为等宽字体 ('mono'),加粗 ('true'),斜体 ('false')。
set_display_font(WindowHandle, 14, 'mono', 'true', 'false')
* 设置绘图模式为边距 ('margin'),这意味着绘制的元素将与窗口边缘保持一定的距离。
dev_set_draw('margin')
* 设置线条宽度为3,这将影响绘制的线条或形状的粗细。
dev_set_line_width(3)
* 开始循环,迭代4次,每次处理一张不同的条形码图像。
for I := 1 to 4 by 1* 构造图像文件路径并读取图像,这里的I是一个变量,代表当前迭代的次数。* 文件名格式为'barcode/25industrial/25industrial0' + I,例如,第一次迭代时会读取'25industrial01'。read_image(Image, 'barcode/25industrial/25industrial0' + I)* 获取图像的尺寸,以便正确设置显示窗口的范围。get_image_size(Image, Width, Height)* 设置窗口的显示区域,使图像完整地填充窗口。dev_set_window_extents(0, 0, Width - 1, Height - 1)* 在窗口中显示图像。dev_display(Image)* 设置绘制颜色为绿色。dev_set_color('green')* 配置为不考虑校验字符进行条形码读取。set_bar_code_param(BarCodeHandle, 'check_char', 'absent')* 尝试找到并解码条形码,返回解码后的字符串。find_bar_code(Image, SymbolRegions, BarCodeHandle, '2/5 Industrial', DecodedDataStrings)* 显示解码后的字符串。disp_message(WindowHandle, DecodedDataStrings, 'window', 12, 12, 'black', 'false')* 计算解码字符串的最后一个字符的位置。LastChar := strlen(DecodedDataStrings) - 1* 显示最后一个字符,假设这是校验字符,并用森林绿颜色标记。disp_message(WindowHandle, sum(gen_tuple_const(LastChar,' ')) + DecodedDataStrings{LastChar}, 'window', 12, 12, 'forest green', 'false')* 暂停程序执行,让用户有时间查看结果。stop()* 现在配置为使用校验字符验证结果。set_bar_code_param(BarCodeHandle, 'check_char', 'present')* 再次尝试找到并解码条形码,这次包括校验字符的验证。* 如果校验字符不正确,条形码读取将会失败。find_bar_code(Image, SymbolRegions, BarCodeHandle, '2/5 Industrial', DecodedDataStrings)* 显示解码后的字符串(不包括校验字符)。disp_message(WindowHandle, DecodedDataStrings, 'window', 36, 12, 'black', 'false')* 改变绘制颜色为洋红色。dev_set_color('magenta')* 如果不是最后一张图片,则暂停,等待用户继续。if (I < 4)stop()endif
endfor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/895753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习资源】时间序列数据分析方法(2)-mWDN和AutoEncoder

接着上次的【学习资源】时间序列数据分析方法&#xff08;1&#xff09;-CSDN博客&#xff0c;本次介绍mWDN和AutoEncoder 解决时序数据分类的方法。介绍模型原理、应用场景和参考代码。也从模型性能、训练效率、模型复杂度、计算复杂度、可解释性、适应性和泛化能力、健壮性、…

【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收

【TI C2000】F28002x的系统延时、GPIO配置及SCI&#xff08;UART&#xff09;串口发送、接收 文章目录 系统延时GPIO配置GPIO输出SCI配置SCI发送、接收测试附录&#xff1a;F28002x开发板上手、环境配置、烧录及TMS320F280025C模板工程建立F28002x叙述烧录SDK库文件说明工程建…

亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用

文章目录 一、引言二、准备工作&#xff08;Ollama 工具介绍与下载&#xff09;2.1 Ollama介绍2.2 Ollama安装 三、指定目录安装 DeepSeek R1四、Chatbox 可视化聊天搭建4.1 Chatbox下载安装4.2 关联 DeepSeek R1 与 Chatbox 的步骤 五、使用 Ollama 调用 DeepSeek 接口5.1 请求…

Python 面向对象的三大特征

前言&#xff1a;本篇讲解面向对象的三大特征&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff0c;还有比较细致的&#xff08;类属性类方法&#xff0c;静态方法&#xff09;&#xff0c;分步骤讲解&#xff0c;比较适合理清楚三大特征的思路 面向对象的…

Jmeter如何计算TPS

1.在jmeter中计算出接口请求的个数 1175 1172 1172 174 200 416 384 1174 5867 2.计算接口平均响应时间 计算每个接口的请求次数乘以平均响应时间&#xff0c;所有接口相加&#xff0c;然后除以所有接口的数量总和&#xff0c;得到接口的平均响应时间 (1175*18191172*…

docker push镜像到阿里云

阿里云账号 阿里云-计算&#xff0c;为了无法计算的价值 开通个人镜像容器 进入控制台&#xff0c;试用容器 实例列表界面 点击上图中的个人&#xff0c;个人版特性 创建个人版&#xff1a; 个人版实例界面&#xff1a; 设置密码 个人版实例&#xff1a; 创建镜像仓库 如上…

大模型与智能体:螺旋共生,绘就智能新蓝图

大模型与智能体&#xff1a;螺旋共生&#xff0c;绘就智能新蓝图 在人工智能的前沿领域&#xff0c;大模型与智能体宛如两颗璀璨的星辰&#xff0c;以一种精妙的螺旋共生关系&#xff0c;重塑着智能世界的格局&#xff0c;深刻影响着我们生活与工作的方方面面。 大模型&#x…

第2章 信息技术发展(一)

2.1 信息技术及其发展 2.1.1 计算机软硬件 计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。 计算机软件 (Computer Software)是指计算机系统中的程序及其文档&#xff0c;程序是计算任务的处理对象和处理规则的描述; 文档…

CentOS系统docker配置镜像加速registry-mirrors,配置阿里云和道客

1.可用仓库 1.1.阿里云 2022年之后的镜像缺失&#xff08;因为被墙了&#xff09;&#xff0c;但是网速极快 https://g4f7bois.mirror.aliyuncs.com1.2.上海道客 持续更新&#xff0c;但是网速极慢 https://docker.m.daocloud.io2.CentOS配置脚本 注意顺序。阿里云的放前…

DeepSeek24小时写作机器人,持续创作高质量文案

内容创作已成为企业、自媒体和创作者的核心竞争力。面对海量的内容需求&#xff0c;人工创作效率低、成本高、质量参差不齐等问题日益凸显。如何在有限时间内产出高质量内容&#xff1f;DeepSeek写作机器人&#xff0c;一款24小时持续创作的智能工具&#xff0c;为企业和个人提…

CPP集群聊天服务器开发实践(五):nginx负载均衡配置

1 负载均衡器的原理与功能 单台Chatserver可以容纳大约两万台客户端同时在线聊天&#xff0c;为了提升并发量最直观的办法需要水平扩展服务器的数量&#xff0c;三台服务器可以容纳六万左右的客户端。 负载均衡器的作用&#xff1a; 把client的请求按照负载均衡算法分发到具体…

【论文笔记】Transformer^2: 自适应大型语言模型

Code repo: https://github.com/SakanaAI/self-adaptive-llms 摘要 自适应大型语言模型&#xff08;LLMs&#xff09;旨在解决传统微调方法的挑战&#xff0c;这些方法通常计算密集且难以处理多样化的任务。本文介绍了Transformer&#xff08;Transformer-Squared&#xff09;…

HTTP的“对话”逻辑:请求与响应如何构建数据桥梁?

一、前言 作为现代互联网通信的基石&#xff0c;HTTP协议定义了客户端与服务器之间的“对话规则”。每一次网页加载、API调用或文件传输的背后&#xff0c;都离不开精心构造的HTTP请求与响应。请求中封装了用户的意图——从请求方法、资源路径到提交的数据&#xff1b;响应则承…

安装 Docker Desktop 修改默认安装目录到指定目录

Docker Desktop安装目录设置 Docker Desktop 默认安装位置 &#xff08;C:\Program Files\Docker\Docker) 是这个 &#xff0c;导致系统盘占用过大&#xff0c;大概2G ; 那么如何安装到其他磁盘呢&#xff1f; 根据docker desktop 官网 Docker Desktop install 我们可以看到&a…

Kotlin Lambda

Kotlin Lambda 在探索Kotlin Lambda之前&#xff0c;我们先回顾下Java中的Lambda表达式&#xff0c;Java 的 Lambda 表达式是 Java 8 引入的一项强大的功能&#xff0c;它使得函数式编程风格的代码更加简洁和易于理解。Lambda 表达式允许你以一种更简洁的方式表示实现接口&…

PyQt组态软件 拖拽设计界面测试

PyQt组态软件测试 最近在研究PyQt,尝试写个拖拽设计界面的组态软件&#xff0c;目前实现的功能如下&#xff1a; 支持拖入控件&#xff0c;鼠标拖动控件位置 拖动控件边缘修改控件大小支持属性编辑器&#xff0c;修改当前选中控件的属性 拖动框选控件&#xff0c;点选控件 控…

机器学习-1:线性回归

常用的线性回归模型主要有以下这些 简单线性回归多元线性回归多项式回归岭回归套索回归弹性网络回归逐步回归 一.简单的一元线性回归 1.导入必备的库 #导入必备的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection …

NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)

循环嵌套 循环嵌套的使⽤ while &#xff0c; do while &#xff0c; for &#xff0c;这三种循环往往会嵌套在⼀起才能更好的解决问题&#xff0c;就是我们所说的&#xff1a;循环嵌套。这三种循环都可以任意嵌套使⽤ ⽐如&#xff1a; 写⼀个代码&#xff0c;打印⼀个乘法⼝…

JavaEE-SpringBoot快速入门

文章目录 本节目标Maven什么是Maven创建一个Maven项目maven项目功能maven的依赖管理全球仓库, 私服, 本地服务器, 配置国内镜像 第一个SpringBoot项目创建项目运行SpringBoot程序 SpringBoot原理初步Web服务器 总结 本节目标 了解什么是maven, 配置国内源使用Springboot创建项…

【AI实践】deepseek支持升级git

当前Windows 11 WSL的git是2.17&#xff0c;Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…