- 博客(121)
- 收藏
- 关注
原创 OpengGL教程(七)---摄像机
本系列历史文本章主要讲述了MVP矩阵中的V矩阵。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。官网中有上面这样一段话,不要去纠结有无摄像机,就默认为有,对于此章节我们一切矩阵操作的对象都是摄像机。摄像机看一个物体有哪些需要注意点地方呢?1、摄像机的位置:摄像机不同的位置,拍摄的角度不同,则看到的画面就不同。2、摄像机的注视点。
2025-04-11 16:03:03
1041
原创 SomeIP/CommonAPI与Franca IDL使用教程(一)
SOME/IP(Service-Oriented Middleware over IP)是一种基于IP网络的通信协议,旨在支持汽车电子系统和嵌入式系统之间的通信。它属于AUTOSAR(Automotive Open System Architecture)标准的一部分,被设计用于构建汽车电子领域的分布式系统。SOME/IP 使用底层的 Socket(套接字)机制来进行通信。SOME/IP的消息是通过UDP或TCP协议传输的。
2024-01-03 15:55:22
3368
3
原创 C++常用23种设计模式总结(三)------装饰模式
装饰模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为。该模式通过将对象放入包装器中来实现这一点,这个包装器会实现与被包装对象相同的接口,并且会将所有方法的调用委派给被包装对象。同时,包装器还可以定义一些额外的行为,例如添加新的方法或修改现有方法的行为。装饰模式的主要优点是它允许你在不修改现有代码的情况下扩展对象的功能。这使得代码更加灵活和可维护,因为你可以通过添加新的装饰器来实现新的功能,而不必修改现有的代码。此外,装饰模式还遵循开闭原则,因为它允许你在不修改现有代码的情况下添加新的功能。
2023-08-31 14:16:41
1078
原创 C++常用23种设计模式总结(二)------观察者模式
观察者模式是一种设计模式,它允许对象之间建立一对多的依赖关系,当一个对象状态发生改变时,它的所有依赖者都会收到通知并自动更新。在C++中,观察者模式可以通过以下步骤实现:创建一个抽象主题类(Subject),该类定义了主题(被观察者)必须实现的方法,包括添加和删除观察者以及通知观察者的方法。创建一个抽象观察者类(Observer),该类定义了观察者必须实现的方法,包括更新方法。创建具体主题类(ConcreteSubject),该类继承了抽象主题类,并实现了具体的方法。
2023-05-11 16:59:08
286
1
原创 C++常用23种设计模式总结(一)------单例模式
单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点来访问该实例。这个模式通常用于控制资源的访问,例如数据库连接、线程池等。单例模式通过限制实例化操作并提供访问方法,确保在整个应用程序中只存在一个实例,避免了多个实例之间的冲突和资源浪费。在单例模式中,类的构造函数被私有化,使得外部无法直接实例化该类。同时,在类的内部创建一个私有静态变量来保存唯一的实例,然后提供一个静态方法来访问该实例。这个静态方法会检查实例是否已经存在,如果存在则返回原有实例,否则创建一个新的实例并返回。
2023-04-28 19:46:38
1313
1
原创 判断两张人脸图片是否是一个人(一)
在这个示例中,首先加载了两张图片,然后对它们进行预处理(包括灰度化、直方图均衡化和缩放),接下来使用Haar级联分类器检测每张图像中的人脸区域。如果检测到的人脸数不是1,则认为不是同一个人。接着创建了一个EigenFaceRecognizer对象,加载了训练好的人脸识别模型,并将预处理后的图像转换为一维向量进行人脸识别。判断两张人脸图片是否是同一个人的任务通常被称为人脸识别(Face Recognition),OpenCV提供了一些现成的工具和方法来解决这个问题。ChatGPT 记录。
2023-04-21 15:22:49
4101
原创 Ubuntu16.04安装使用protobuf2(一)
本人也是protobuf新手,因项目需要才接触到的。开始按照官方教程整了一整天最新版的proto3,死活配置不成功。所以直接使用了proto2。
2022-10-24 16:47:48
1173
原创 Windows下目录跳转方法
Windows下目录跳转不能像Linux一样使用cd命令直接跳转。当前是在C盘下面,但是要注意现在并不是在C盘根目录下面,而是在C盘用户目录下面也就是家目录下面。如果想进入C盘根目录执行如下命令即可cd /查看当前目录下的文件指令:dir...
2021-11-22 21:20:06
1653
原创 Windows下Python-openCV学习(四)-------色彩空间与通道
本章简明色彩空间: GRAY色彩空间:cv2.COLOR_BGR2GRAY HSV色彩空间: cv2.COLOR_BGR2HSV 、cv2.COLOR_HSV2BGR通道: 拆分通道:split()方法 合并通道:merge()方法 综合运用拆分通道和合并通道 alpha通道GRAY色彩空间GRAY色彩空间指的就是灰度图,灰度图只有一个色彩通道。灰度图像每个像素都是从黑到白,被分为256个灰度级别,0表示纯黑,1表示纯白。0~255的数值表示不同亮度(即色彩的
2021-11-05 21:47:10
377
原创 PythonNumPy模块详解
NumPy模块openCV中NumPy模块使用详解见我另一篇博客。Windows下Python-openCV学习(三)-------像素获取和NumPy模块什么是NumPy?NumPy 是一个 Python 包。 它代表 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant
2021-11-04 20:39:21
988
原创 Windows下Python-openCV学习(三)-------像素获取和NumPy模块
本章简明像素获取: 确定像素的位置 获取像素的BGR值 修改像素的BGR值使用NumPy模块操作像素: NumPy模块概述 数组的类型 创建数组:array()方法 操作数组 数组的索引和切片 创建图像 拼接图像讲解像素点的获取我们要如何获取图片中指定位置的像素点信息呢?在Windows下Python-openCV学习(二)-------图像处理基本操作中我们使用cv2.imread方法打开一个图像,其返回值就是图片的相关信息。我
2021-10-30 17:15:41
2130
原创 Windows下Python-openCV学习(二)-------图像处理基本操作
本章简明读取图像: inmread()方法显示图像: imshow()方法 waitKey()方法 destroyAllWindows()方法保存图像: imwrite()方法获取图像属性: shape size dtype讲解读取图像image = cv2.imread(filename,flags)功能: 读取图像参数: filename :要读取图像的完整文件名称,只写文件名表示当前项目路径。可使用带路径
2021-10-28 17:58:13
1567
原创 Windows下Python-openCV学习(一)-------openCV下载安装
环境搭建python和pycharm安装这里就不作记录了。网上教程一大堆。openCV下载和安装CMD下输入:pip install opencv-python验证安装CMD下输入python如果出现换行python>>>如上这种现象,继续输入:import cv2出现>>>这个标志继续输入:import numpy as np出现>>>继续输入exit()退出>>>模式,即说明下载安装成功
2021-10-26 13:33:02
1038
原创 if判断类型
if判断的是bool值,布尔值只有0和1,非0就是1,0就是0;#include "stdio.h"int main(){ int a=-1,b=0,c=1; if(a) { printf("a = %d\n",a); } if(b) { printf("b = %d\n",b); } if(c) { printf("c = %d\n",c); } return 0;}输出:a = -2c = 1...
2021-10-20 17:13:48
541
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人