当前位置: 首页 > news >正文

数据类设计_图片类设计_矩阵图类型和像素图类型设计的补充

前言

        以矩阵图类型和像素图类型作为图像类数据的基础,但在使用过程中有个问题:矩阵图形和像素图形的尺寸---长和高没有表现出来,本贴对此做出分析.

引入

        原帖数据类设计_图片类设计之7_矩阵图形类设计更新_实战之页面简单设计(前端架构)-CSDN博客里有对矩阵图形类的定义如下:

//更新后的矩阵类定义
struct Matrix : public Reg_pic {short length;                             //表示长度的点个数short height;                             //表示高度的点个数short red;short green;short blue;vector<vector<Reg_point>> matrix;         //图,点的二维数组vector<Matrix> inner_matrix;              //更新时添加的属性,表示内部矩阵Matrix(short Length, short Height, short Red,short Green, short Blue)              //构造函数{vector<Reg_point> tmp;                //临时容器for (short i = 0; i < height; i++)for (short j = 0; j < length; j++){tmp.push_back(Reg_point{ Red,Green,Blue });}matrix.push_back(tmp);                //临时容器内容添加到矩阵对象}
};

而点的类型定义在数据类设计_图片类设计之1_矩阵类设计(前端架构基础)-CSDN博客

//规则点类
struct Reg_point{short red;short green;short blue;
}

像素图和像素点定义如下:

//自由图形类(像素图)定义
struct Pixel_pic{vector<Pixel_point> pps;    //像素点集合
}//像素点类型定义
struct Pixel_point{short x_cord;short y_cord;short red;short green;short blue;
}

复习数据的来源与访问

        数据的来源

        "数据=数据类型+参数"----通常情况下数据分三步得来:定义数据类型,给出参数,得到数据.

        数据的访问

         数据的访问有两种形式:

        1.数据名或者指向数据对象的指针;

        2.数据集合与查找算法---当把数据用某种数据结构放入数据集合时,由指向数据集合首元素的指针和定义的查找算法来访问数据

矩阵类图形类型分析

        1.矩阵类对象的构造函数,符合数据来源的写法.   

//矩阵类构造函数
Matrix(short Length, short Height, short Red,short Green, short Blue)    

        他表示建立一个长Length,宽Height,颜色分别为Red,Green,Blue的纯色矩阵对象.

        这种情况下,Length和Height是核心属性,他们直接决定了数据对象的构成.也可以看作是一种"主动"的属性.

         2.矩阵类对象由vector动态生成.

        因为Matrix对象是由二维数组的点所构成,在后面的矩阵混合算法中,都是采用push_back()添加进对象的,所以此时的长和高,采用vector方法求出来.这是一种被动生成数据的写法.

        于是可以给三个函数,分别为showSize();getLength()getHeight();表示计算尺寸,获得长度和高度.

//更新后的矩阵类定义
struct Matrix : public Reg_pic {short length;                             //表示长度的点个数short height;                             //表示高度的点个数short red;short green;short blue;vector<vector<Reg_point>> matrix;         //图,点的二维数组vector<Matrix> inner_matrix;              //更新时添加的属性,表示内部矩阵Matrix(short Length, short Height, short Red,short Green, short Blue)              //构造函数{vector<Reg_point> tmp;                //临时容器for (short i = 0; i < height; i++)for (short j = 0; j < length; j++){tmp.push_back(Reg_point{ Red,Green,Blue });}matrix.push_back(tmp);                //临时容器内容添加到矩阵对象}//以下至末尾为新添加代码void showSize(){                          //计算尺寸height=matrix.size();                 //计算高度auto mxd=matrix.begin();              //得到指向矩阵第一行的指针length=(*mxd).size();                 //取得这一行,得到其长度}short getLength(){                        //get长度return length;}short getHeight(){                        //get高度return height;}};

        注意:被动生成数据的时候,核心属性是vector<vector<Reg_point>> matrix

 像素图形类分析

        和矩阵数据类对象的第二种情况类似,他也是一种被动生成的数据. 

//自由图形类(像素图)定义
struct Pixel_pic{vector<Pixel_point> pps;    //像素点集合//以下为新增代码short getLength(){          //获得长度,最大x坐标short max=0;for(auto ppsd=pps.begin();ppsd!=pps.end();ppsd++){if(max<(*ppsd).x_cord){max=(*ppsd).x_cord;}}return max;}short getHeight(){          //获得高度,最大y坐标short max=0;for(auto ppsd=pps.begin();ppsd!=pps.end();ppsd++){if(max<(*ppsd).y_cord){max=(*ppsd).y_cord;}}return max;}}

         getLength()和getHeight();表示获得长度和高度

        至此两种图形类型长和高的问题解决了.如果其他代码中需要用到这两个属性,可以表达出来.笔者就不更新之前的代码了.

回顾 

        实质上是对vector这种数据结构的认识,在C/C++定义的动态数组中,表示数据集合内元素个数的数字,也是一种被动的存在. 

小结

        除了上一帖引入了核心属性,这里由于vector的特殊性质,又引入了被动属性这个概念.

        另外,编程重在理解(理解的重点还是数据---数据是程序中的重中之重),只要有足够的理解,代码不管是横着写竖着写,正着写反着写,都能写得出来,共勉.

相关文章:

数据类设计_图片类设计_矩阵图类型和像素图类型设计的补充

前言 以矩阵图类型和像素图类型作为图像类数据的基础,但在使用过程中有个问题:矩阵图形和像素图形的尺寸---长和高没有表现出来,本贴对此做出分析. 引入 原帖数据类设计_图片类设计之7_矩阵图形类设计更新_实战之页面简单设计&#xff08;前端架构&#xff09;-CSDN博客里有对…...

php写入\查询influxdb数据

namespace app\index\controller;use InfluxDB2\Client; use InfluxDB2\Model\WritePrecision; use InfluxDB2\Point;class Demo {/*** 显示资源列表** return \think\Response*/public function index(){$token 你的TOKEN;$org zzlichi;$bucket initdb;$client new Client…...

新手村:逻辑回归-理解02:逻辑回归中的伯努利分布

新手村&#xff1a;逻辑回归-理解02&#xff1a;逻辑回归中的伯努利分布 伯努利分布在逻辑回归中的潜在含义及其与后续推导的因果关系 1. 伯努利分布作为逻辑回归的理论基础 ⭐️ 逻辑回归的核心目标是: 建模二分类问题中 目标变量 y y y 的概率分布。 伯努利分布&#xff08…...

Python正则表达式(一)

目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式&#xff1a; 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…...

JavaScript基础-事件委托(代理、委派)

在Web开发中&#xff0c;处理用户交互时经常需要监听DOM元素上的事件。然而&#xff0c;当页面上存在大量的动态生成的元素时&#xff0c;直接给每个元素绑定事件处理器可能会导致性能问题和代码管理复杂度增加。这时&#xff0c;事件委托提供了一种更加高效且易于维护的解决方…...

《TCP/IP网络编程》学习笔记 | Chapter 22:重叠 I/O 模型

《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型 《TCP/IP网络编程》学习笔记 | Chapter 22&#xff1a;重叠 I/O 模型理解重叠 I/O 模型重叠 I/O本章讨论的重叠 I/O 的重点不在于 I/O 创建重叠 I/O 套接字执行重叠 I/O 的 WSASend 函数进行重叠 I/O 的 WSA…...

【区块链安全 | 第二篇】区块链概念详解

文章目录 概述1. 区块链类型2 区块链五层架构3 账本模型4. 节点&#xff08;Node&#xff09;5. 区块&#xff08;Block&#xff09;6. 区块链&#xff08;Blockchain&#xff09;7. 区块链工作流程 核心技术1. 共识机制2. 智能合约 主要组件1. 交易&#xff08;Transaction&am…...

Android实践开发制作小猴子摘桃小游戏

Android实践制作小猴子摘桃小游戏 实践素材项目源文件获取&#xff1a;Android可以存在版本差异项目如果不能正确运行&#xff0c;可以使用里面的素材自己构建项目Android实践制作小猴子摘桃小游戏Android实践制作小猴子摘桃小游戏https://mp.weixin.qq.com/s/jNU_hVfj9xklsil…...

“11.9元“引发的系统雪崩:Spring Boot中BigDecimal反序列化异常全链路狙击战 ✨

&#x1f4a5; "11.9元"引发的系统雪崩&#xff1a;Spring Boot中BigDecimal反序列化异常全链路狙击战 &#x1f3af; &#x1f50d; 用 Mermaid原生防御体系图 #mermaid-svg-XZtcYBnmHrF9bFjc {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…...

【C++】回调函数和回调对象

文章目录 回调可调用对象函数指针作回调函数对象作回调函数对象的使用std::function【C11】作回调使用 【C11】Lambda表达式作回调【C11】bind对象作回调std::bind的使用作回调使用 回调 当发生某种事件时需要调用或触发另一个事件即为回调&#xff0c;回调的核心即为将可调用…...

电子产品可靠性预计怎么做?

目录 1、电子产品可靠性预计的目的 2、电子产品可靠性预计的常用方法 2.1、基于统计数据的预计方法 2.2、物理模型预计方法 2.3、加速寿命试验 2.4、基于仿真的预计方法 3、电子产品可靠性预计的步骤 3.1、定义可靠性指标 3.2、收集数据 3.3、建立模型 3.4、进行仿真…...

Ubuntu20.0.4创建ssh key以及repo命令的使用

创建ssh key ssh-keygen //一路回车&#xff0c;不用输入任何东西cat ~/.ssh/id_rsa.pub 配置git config git config --global user.name xxx // 设置git用户名git config --global user.email xxx.com.cn //设置git 邮箱git config --list// remove the git config// rm -fr …...

Java动态代理的使用和安全问题

前言&#xff1a; java的动态代理是指进行明确的分工的操作&#xff08;多接口 比如我是酒店的老板 有人找我合作 需要先经过前台 我的助理 而不是直接找我&#xff09; 序列化 &#xff1a;为什么序列化 序列化的对象是一个类 我们也叫对象 class一堆东西里面有很多函…...

Linux云计算SRE-第二十一周

构建单节点prometheus&#xff0c;部署node exporter和mongo exporter。构建kibana大盘。包含主机PU使用率&#xff0c;主机MEM使用率&#xff0c;主机网络包速度。mongo db大盘&#xff0c;包含节点在线状态&#xff0c;读操作延迟等 一、实验环境准备 - 节点信息&#xff1…...

《Python实战进阶》第33集:PyTorch 入门-动态计算图的优势

第33集&#xff1a;PyTorch 入门-动态计算图的优势 摘要 PyTorch 是一个灵活且强大的深度学习框架&#xff0c;其核心特性是动态计算图机制。本集将带您探索 PyTorch 的张量操作、自动求导系统以及动态计算图的特点与优势&#xff0c;并通过实战案例演示如何使用 PyTorch 实现…...

python dict转换成json格式

一开始你变成字典格式 data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] import json data [ { a : 1, b : 2, c : 3, d : 4, e : 5 } ] data2 json.dumps(data) print(data2)json.dumps(data) 是将数组json化。 json格式化输出 data2 json.dumps({a: Runoob, b: 7…...

美亚科技业绩波动明显:现金流为负,四起未决诉讼涉金额1700万

《港湾商业观察》施子夫 近期&#xff0c;广东美亚旅游科技集团股份有限公司&#xff08;以下简称&#xff0c;美亚科技&#xff09;披露第二轮审核问询函的回复。从两轮问询函监管层提出的问题来看&#xff0c;有关美亚科技业绩增长的合理性、募投项目的必要性及合理性、经营…...

Java面试总结+算法

目录 Java 中 和 equals 的区别是什么&#xff1f; 什么是类加载器&#xff0c;Java 中有哪些类加载器&#xff1f;它们的职责分别是什么&#xff1f; Redis 有哪些数据结构&#xff1f;它们分别适用于哪些场景&#xff1f; 什么是索引&#xff1f;MySQL 有哪些常见的索引类…...

深度优先搜索(DFS)在排列组合问题中的应用详解:C++实现与优化

一、排列问题&#xff08;Permutations&#xff09; 目标&#xff1a;生成所有可能的排列&#xff08;元素顺序不同视为不同结果&#xff09;。 示例&#xff1a;输入 [1,2,3]&#xff0c;输出所有长度为3的排列&#xff0c;共6种。 C实现代码 #include <iostream> #i…...

GeoChat : Grounded Large Vision-Language Model for Remote Sensing论文精读

GeoChat : Grounded Large Vision-Language Model for Remote Sensing 是一个针对遥感场景的llm&#xff0c;提供支持多任务对话&#xff08;对高分辨率遥感图像&#xff09;。也造了个数据集。 一些思考&#xff1a; 文中提到的局限性&#xff1a;小物体和多框预测较难。小物…...

Postman使用02、断点、fiddler弱网测试

脚本操作 一、脚本导出 1.导出json脚本 2.打包json文件 3.下载的文件 二 .导入脚本 1.选择文件 2.点击导入 3.导入的接口 三.多接口运行 1.集合右键&#xff0c;点击run &#xff0c;运行多个接口 2.编辑环境&#xff0c;集合&#xff0c;执行次数等 3.运行多个接口 四.运行…...

深入解析 C++20 中的 std::bind_front:高效函数绑定与参数前置

文章目录 1. 什么是 std::bind_front&#xff1f;2. 使用 std::bind_front2.1 基本用法2.2 绑定多个参数 3. 优势与特点3.1 简化代码3.2 支持可调用对象3.3 支持完美转发 4. 实际应用场景4.1 事件处理4.2 算法通用化4.3 成员函数调用 5. 总结 在现代 C 编程中&#xff0c;函数绑…...

Opencv计算机视觉编程攻略-第三节 图像颜色处理

第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较&#xff0c;其中注意BGR颜色空间不连续&#xff0c;不利于颜色提取和区分&#xff0c;转换到Lab空间&#xff1a; int getColorDistance(const cv::Vec3b& c…...

第十七章:Future Directions_《C++ Templates》notes

Future Directions 核心重难点&#xff1a;示例代码&#xff1a; 设计题多选题答案设计题详解 核心重难点&#xff1a; 泛型非类型模板参数 允许任意类型作为非类型模板参数&#xff08;如template<typename T, auto N>&#xff09;需解决类型推导和链接问题 编译期控制…...

ComfyUI-PSD-Replace: 海报与壁纸批量生成

ComfyUI-PSD-Replace: 海报与壁纸批量生成 &#x1f680; 插件介绍 ComfyUI-PSD-Replace 是一款强大的图像批量处理插件&#xff0c;专为设计师和创意工作者打造。无论你是想快速生成多款海报、定制壁纸&#xff0c;还是批量更新设计模板&#xff0c;本插件都能帮你轻松实现&a…...

图解预训练模型 ELMo 和 BERT

一、ELMo 二、BERT 以上笔记参考自b站up主 自然卷小蛮&#xff08;自然卷小蛮的个人空间-自然卷小蛮个人主页-哔哩哔哩视频&#xff09;&#xff0c;感兴趣的可以去深入了解。...

YoloV8训练和平精英人物检测模型

概述 和平精英人物检测&#xff0c;可以识别游戏中所有人物角色&#xff0c;并通过绘制框将人物选中&#xff0c;训练的模型仅仅具有识别功能&#xff0c;可以识别游戏中的视频、图片等文件&#xff0c;搭配Autox.js可以推理&#xff0c;实现实时绘制&#xff0c;但是对手机性…...

基于物联网的智能蔬菜仓库设计(论文+源码)

1系统功能分析 由于蔬菜仓库内部环境直接影响到内部货物的正常存储工作&#xff0c;因此对蔬菜仓库内部环境进行智能化的监控具有重要意义。本次基于物联网的智能蔬菜仓库设计&#xff0c;系统实现的功能如下&#xff1a; &#xff08;1&#xff09;对蔬菜仓库内部进行温度检测…...

Java 字符流全解析:核心类实战指南

一、FileReader 与 FileWriter&#xff1a;文本文件基础操作 功能&#xff1a;直接基于字符处理文本文件&#xff0c;自动完成字节到字符的解码&#xff08;默认使用系统编码&#xff09;。 适用场景&#xff1a;读写简单的文本文件&#xff08;如 .txt、.csv&#xff09;。 …...

SQL Server 2022 安装问题

一、安装与配置问题 1. SQL Server 2022 安装失败怎么办&#xff1f; 常见原因&#xff1a; 硬件或操作系统不满足最低要求&#xff08;如内存、磁盘空间不足&#xff09;。未关闭防火墙或杀毒软件。之前版本的 SQL Server 残留文件未清理。 解决方案&#xff1a; 确保硬件配…...

Vue3 实现pdf预览

1.使用到的插件 vue3-pdf-app 以及预览效果 2.下载依赖 // 可以使用npm 以及pnpm // 下载版本1.0.3 pnpm install vue3-pdf-app^1.0.3 3.封装pdfModel组件复用 <template><VuePdfApp :page-scale"pageScale" :theme"theme" :style"width: …...

python网络爬虫开发实战之网页数据的解析提取

目录 1 XPath的使用 1.1 XPath概览 1.2 XPath常用规则 1.3 准备工作 1.4 实例引入 1.5 所有节点 1.6 节点 1.7 父节点 1.8 属性匹配 1.9 文本获取 1.10 属性获取 1.11 属性多值匹配 1.12 多属性匹配 1.13 按序选择 1.14 节点轴选择 2 Beautiful Soup 2.1 简介…...

GitHub Copilot平替:CodeGeeX 2.0实测报告

本文基于20个真实开发场景对CodeGeeX 2.0进行深度评测&#xff0c;涵盖代码生成质量、上下文理解能力、多语言支持度等关键维度。通过Python数据分析、Java微服务、React前端开发三大核心场景的对比实验&#xff0c;揭示其相比GitHub Copilot在中文语境支持、本地化部署、隐私保…...

QT对象模型

信号,槽,函数执行顺序 首先&#xff0c;拖入一个按钮&#xff0c;在转到槽&#xff0c;在click() 转到widget.cpp 在widget.h中 然后在widget.cpp中 运行结果 当发出信号后&#xff0c;先执行槽函数&#xff0c;再执行信号后面的函数&#xff08;单线程&#xff09; 在widget.h…...

C++:类型推导规则 unsigned short + 1

在 C/C 中&#xff0c;整数提升&#xff08;Integer Promotion&#xff09; 规则决定了 vlan_id 1 的类型&#xff1a; unsigned short 的值在运算时会被 提升&#xff08;promote&#xff09; 到 int 或 unsigned int&#xff08;取决于平台&#xff09;。 默认情况下&#x…...

PHP接口开发:从基础到高级的全面指南

一、接口基础与核心概念(约800字) 1.1 接口的本质定义 在PHP中,接口(Interface)是一种特殊的抽象结构,它通过interface关键字定义一组方法的契约规范,不包含具体实现。这种设计强制实现类必须遵循统一的调用标准,如: interface PaymentGateway {public function proc…...

C#Dictionary值拷贝还是引用

Dictionary值拷贝还是引用 这可能算是Directionary的一个坑值类型&#xff08;Value Type&#xff09;引用类型&#xff08;Reference Type&#xff09;总结 关于锁1. **锁对象的可见性**2. **锁对象的唯一性**3. **最佳实践**4. **为什么 readonly 是一个好的选择**5. **总结*…...

deepseek实战教程-第六篇查找源码之仓库地址与deepseek-R1、deepseek-LLM仓库内容查看

上一篇讲了支持deepseek的模型应用的本地安装和部署以及使用。再上一篇讲解了deepseek提供的开放api,便于开发者基于deepseek提供的接口来编写属于自己的业务应用程序。但是前面几篇我们都是在用模型,我们知道deepseek是开源的,那么deepseek的源码在哪里,具体源码是什么样的…...

WELL健康建筑认证是什么?

**WELL健康建筑认证&#xff1a;全方位呵护居住者福祉的权威标准** WELL健康建筑认证&#xff0c;这一源自美国的全球性健康建筑标准&#xff0c;宛如建筑界的璀璨明珠&#xff0c;以其独特的光芒照亮了健康建筑的发展之路。它不仅是全球首部专门针对室内环境提升人体健康与福…...

C++ STL 序列式容器之(三)-- List

一、什么是list&#xff1f; Lists are sequence containers that allow constant time insert and erase operations anywhere within the sequence, and iteration in both directions. 列表是序列容器&#xff0c;允许在序列中的任何位置进行以常量时间插入和擦除操作&…...

CAN基础知识学习二

一、控制器局域网总线&#xff08;CAN&#xff0c;Controller Area Network&#xff09;&#xff1b; 二、CAN FD 是CAN with Flexible Data rate的缩写&#xff0c;翻译为【可变速率的 CAN】 CAN-FD 采用了两种位速率&#xff1a;从控制场中的 BRS 位到 ACK 场之前&#xff08…...

Java编程思想:为何有时要将子类对象赋值给父类引用

为何有时要将子类对象赋值给父类引用&#xff0c;用父类来进行实例化&#xff1f; 这就要说多态的优势: 代码的扩展性和降低耦合度&#xff0c;而不是完全避免修改代码。 TuXing t new Changfangxing(); Changfangxing k (Changfangxing)t;原因1&#xff1a; 代码可拓展性 …...

2025年优化算法:龙卷风优化算法(Tornado optimizer with Coriolis force,TOC)

龙卷风优化算法&#xff08;Tornado optimizer with Coriolis force&#xff09;是发表在中科院二区期刊“ARTIFICIAL INTELLIGENCE REVIEW”&#xff08;IF&#xff1a;11.7&#xff09;的2025年智能优化算法 01.引言 当自然界的狂暴之力&#xff0c;化身数字世界的智慧引擎&…...

2小样本学习(Few-Shot)之相似度

目录 小样本学习的基本思路: 具体实现方法: 小样本学习的基本思路: 学习一个相似度函数similarity function:sim(x,x) 两个样本越相近,相似度越高。 比如:...

docker-操作实战

前言 C镜像制作 因为我平常不用&#xff0c;所以不书写了 SpringBoot 微服务镜像制作 mkdir java ca java cp /data/maxhou/myapp/xxx.jar . vi Dockerfile FROM openjdk:8 COPY ./xxx.jar /app.jar CMD ["java","-jar","/app.jar"]COPY ./…...

后大模型时代智能体将成为“新宠”

智能体 |未来已来 智能体 |市场井喷 智能体 |定义 智能体 |与大模型的区别 智能体 |与Copilot的区别 智能体 |企业价值 智能体 |个体价值 智能体 |开发流程 智能体 |提示词解读 智能体 |应用场景 智能体 |重难点问题...

【MySQL】监控MySQL

目录 使用状态变量监控MySQL 使用性能模式&#xff08;Performance Schema&#xff09;监控MySQL 1.性能模式 2.性能模式设置表 3.sys模式 使用状态变量监控MySQL 使用 show status 语句评估系统运行状况。 可以添加范围修饰符global或session来显示全局或本地状态信息。…...

CTF类题目复现总结-[BSidesSF2020]toast-clicker 1

一、靶场地址 https://buuoj.cn/challenges#[BSidesSF2020]toast-clicker1二、复现步骤 1、下载压缩包&#xff0c;解压是apk文件&#xff1b; 2、利用 jadx apk反编译工具&#xff1b; jadx下载地址&#xff1a;https://github.com/skylot/jadx67, 83, 68, 120, 62, 109, …...

(更新完)Supplementary Material——AZ-NAS

6. Supplementary Material 在本补充材料中&#xff0c;我们提供了 AZ-NAS 在 NDS [18]、NAS-Bench-201 [7] 和 MobileNetV2 [14, 19] 搜索空间上的额外结果和深入分析。 Additional results on the NDS benchmark. 神经设计空间&#xff08;NDS&#xff09; [18] 基准提供了…...

基于SSM框架的线上甜品销售系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此网上销售信息的…...