笔记
文章平均质量分 64
xiao张的da世界
更新全看心情,和在没在划水
展开
-
c++读取raw文件
【代码】c++读取raw文件。原创 2022-09-27 21:29:57 · 2181 阅读 · 1 评论 -
OpenCV学习笔记18_图像处理中的金字塔是个啥?
终于知道图像金字塔是什么了!!!原创 2021-12-22 20:19:17 · 2036 阅读 · 1 评论 -
图像分辨率
文章目录分辨率分辨率空间分辨率百科介绍为:单位英寸中所包含的像素点数。在图像上的反映就是图像的细腻程度;记住一句话:分辨率越大,细节越明显分辨率空间分辨率空间是图像处理中模拟人眼看物体的远近问题,人眼离物体越远物体越小,细节越模糊,人眼离物体越近物体越大,细节越明显。例子:可以想象一下你开车的时候前面有一辆黑色的车:距离很远的时候你看见的是一团黑色,甚至分不清是什么;稍微近一些你可以看出来这是一辆黑色的车,但是分不清具体是轿车还是suv;再近一些你可以看出来这是一辆黑色的轿车,但是看不原创 2021-12-21 18:25:01 · 973 阅读 · 0 评论 -
(超级详细)一文看懂指针、地址、引用
超级详细!!!!一文看懂指针、地址、引用原创 2021-12-09 16:47:48 · 37433 阅读 · 14 评论 -
多线程问题___C++11与WindowsAPI的多线程
简单介绍一下多线程:1、多线程的发展早期1998 C++标准版不承认线程的存在,内存模型也没有被正式定义,所以对于1998 C++标准,你没办法在缺少编译器相关扩展的情况下编写多线程应用程序。早期只能借助编译器厂商提供的平台相关的扩展多线程支持API如WindowsAPI,这就导致了多线程应用的可移植性差。直到C++11发布将多线程支持纳入C++standard库。2、并发与并行并发:同一时间段内可以交替处理多个操作,强调同一时段内交替发生。并行:同一时刻内同时处理多个操作,强调同一时刻点同原创 2021-12-09 11:36:53 · 438 阅读 · 0 评论 -
找半天Bug之_奇葩的字符串
今天真的无语了,两条相同的语句,咱也不知道为什么第一条语句就不对:先看代码: String path = "C:\\Users\\Administrator\\Desktop\\test.bmp"; String path = "C:\\Users\\Administrator\\Desktop\\test.bmp";乍一看是不是一模一样,咱也觉得没毛病;一开始以为是字符集的问题,结果后来DeBug一看:我直接骑着扫帚飞再sorry,sorry,这凭空多两个字符是怎么回事,各位可以数一原创 2021-12-04 15:18:45 · 186 阅读 · 1 评论 -
OpenCV学习笔记17_插值运算
前向映射:如果一张图片需要缩小2倍,图像缩放,本质上就是将每个像素点的矢量进行缩放,也就是将矢量x方向和y方向的坐标值缩放,那么图像中的所有坐标点都需要缩小到原来的1/2,原来的图像通过缩小1/2到目标图像的这个过程就叫前向映射:矩阵形式为:[uv]=[kx00ky][xy]\left[\begin{array}{c}u \\v\end{array}\right]=\left[\begin{array}{cc}k_{x} & 0 \\0 & k_{y}\end{ar原创 2021-12-01 19:15:33 · 2954 阅读 · 0 评论 -
OpenCV学习笔记16_常用边缘检测算法
边缘检测文章目录边缘检测一、边缘检测的理解二、常用边缘检测算子1、普通梯度算子:2、Roberts算子:3、Prewitt算子:4、Sobel算子:5、拉普拉斯算子:6、LoG算子:7、Canny算子:1.图像降噪2.计算图像梯度3.非极大值抑制4.阈值筛选三、结果四、代码一、边缘检测的理解边缘一般是指图像在某一局部强度剧烈变化的区域。强度变化一般有两种情况:阶跃变化:像数值从低到高变化,图像从暗到亮山顶变化:由暗到亮再到暗,两边较暗,中心突出。边缘检测实际上是找到两种强度变化的集合。原创 2021-12-01 13:26:22 · 3615 阅读 · 0 评论 -
OpenCV学习笔记15_仿射变换与透视变换
文章目录一、仿射变换什么是仿射变换公式推导插值方法:双线性插值二、透视变换三、代码四、结果原图翻转(上下左右)大小变化绕中心旋转偏移opencv结果:缩小透视变换一、仿射变换什么是仿射变换仿射变换也称仿射投影,是指几何中,对一个向量空间进行线性变换并接上一个平移,变换为另一个向量空间。所以,仿射变换其实也就是在讲如何来进行两个向量空间的变换。对于一幅图像,可以看作很多个坐标的集合,每个坐标可以代表一个向量,由此可以将图像看作向量集合,那么在二维坐标系上:公式推导假设存在一个向量空间V:V=(a原创 2021-11-26 13:04:42 · 2468 阅读 · 0 评论 -
OpenCV学习笔记14_常用五种滤波器原理与C++实现(代码在最后)
好久没发blog了,总结一下常用的图像滤波器吧。。。(感兴趣的同学可以实现一下快速中值滤波:快速中值滤波介绍)文章目录第1步 、添加噪声(高斯噪声与椒盐噪声)一、椒盐噪声二、高斯噪声1、Box_Muller法生成高斯序列空域上的高斯噪声(跟椒盐噪声类似):频域上的椒盐噪声:第2步 、滤波操作(常用5种滤波器)一、什么是滤波器1、滤波器的定义2、滤波器的分类二、 线性滤波器1、方框滤波器2、均值滤波器3、高斯滤波器三、非线性滤波器1、中值滤波器2、双边滤波器四、代码第1步 、添加噪声(高斯噪声与椒盐噪声原创 2021-11-21 15:16:54 · 1555 阅读 · 0 评论 -
OpenCV学习笔记13_霍夫变换
霍夫变换的原理:1、检测直线推导过程:直线y=kx+b为斜率为k截距为b的直线,假设已知一个点(m,n)在直线上,代入直线方程那么n=mk+b,转换一下形式得k=n/m-b/m,m与n为常数,上式变为k=C1b+C2。图像为:同理在(m1,n1)点有k=C3b+C4图像为:当k=k0,b=b0时三条线相交,则三点在k=k0,b=b0时候在同一直线上,由此可判断各点是否在一条直线上。霍夫变换检测直线就是列出所有点的k,b坐标系方程,找出相交的线,对应的点就在一个直线上。由于k的范原创 2021-11-15 09:34:50 · 2645 阅读 · 0 评论 -
OpenCV学习笔记12_矩阵常用数学运算
1、简单加法void add(InputArray src1,InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -1);//dst = src1 + src22、简单减法void subtract(InputArray src1, InputArray src2, OutputArray dst, InputArray mask = noArray(), int dtype = -原创 2021-11-09 13:58:46 · 2514 阅读 · 0 评论 -
OpenCV学习笔记11_Mask操作与图像叠加
一、掩膜操作Mask在opencv功能:1、 逻辑运算模板mask;例如:inline //内联函数void GpuMat::copyTo(OutputArray dst, InputArray mask) const{ copyTo(dst, mask, Stream::Null());}//copyTo函数CV_WRAP void copyTo(OutputArray dst, InputArray mask, Stream& stream) const;/*S原创 2021-11-09 13:53:07 · 3451 阅读 · 0 评论 -
OpenCV学习笔记10_形态学变换
一、什么是形态学形态学一般指生物学中研究动物和植物结构的一个分支。用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。形态学图像处理的数学基础和所用语言是集合论。形态学图像处理的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。二、形态学变换形态学操作是根据图像形状进行的简单操作,一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它原创 2021-11-05 14:21:29 · 485 阅读 · 0 评论 -
OpenCV学习笔记09_掩码操作(卷积操作)
掩码操作根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。图像的掩码操作是指通过掩码核算子重新计算图像中各个像素的值,掩码核算子刻画领域像素点对新像素值得影响程度,同时根据掩码算子中权重因子对像素点进行加权平均。图像掩码操作常用于图像平滑、边缘检测、特征分析等区域。具体思路为8邻域的像素点与本身像素点作加权运算(kernel size:3x3)实现方式(三通道原创 2021-11-02 12:30:21 · 2031 阅读 · 0 评论 -
纯虚函数的实例化问题
什么是纯虚函数1、虚函数:在基类中将一个函数声明为虚函数,使该函数具有虚属性,那么其所有派生函数中该函数的重写都具备了虚属性,也就使得基类指针可以调用派生类实例中继承自该基类的所有成员函数,且若有重写,调用的都是重写后的函数。写法:virtual 函数类型 函数名(参数列表); //虚函数2、纯虚函数:纯虚函数是一种特殊的虚函数,具有纯虚函数的类称为抽象类;写法:virtual 函数类型 函数名(参数列表) = 0; //纯虚函数特点:1、纯虚函数对类最大的束缚就是:类中一旦出现纯虚原创 2021-10-28 13:42:18 · 2184 阅读 · 0 评论 -
OpenCV学习笔记08_对比度增强
1.对比度2.线性变换3.直方图均衡化4.直方图正规化5.伽马校正6.限制对比度的自适应直方图均衡化(CLAHE)原创 2021-10-26 16:21:47 · 744 阅读 · 0 评论 -
OpenCV学习笔记07_直方图的创建与显示
①直方图概述:在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像、视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征)。通常直方图的维数要低于原始数据。②创建直方图:calcHist()函数CV_EXPORTS void calcHist( const Mat* images, int nimages,const int* channels, InputArray mask,OutputArray hist, int dims,原创 2021-10-11 17:45:02 · 254 阅读 · 0 评论 -
OpenCV学习笔记06_滑动条的创建与使用
滑动条的创建1、creatTrackbar函数要创建一个跟踪栏,首先我们必须创建一个它将被放置的窗口。所以namedWindow("Linear Blend", WINDOW_AUTOSIZE); // Create Window通过使用cv :: createTrackbar在OpenCV窗口中添加一个TrackbarCV_EXPORTS int createTrackbar(const String& trackbarname, const String& winname,原创 2021-10-10 15:48:07 · 201 阅读 · 0 评论 -
OpenCV学习笔记05_通道分离与融合(RGB通道为例)
#include <opencv.hpp>#include<vector>void main(){//RGB通道分离与融合 cv::Mat dst, B, G, R; dst = cv::imread("C:/Users/Administrator/Desktop/test.jpg", cv::IMREAD_COLOR); //BGR通道测试 cv::imshow("DST", dst); //创建3个Mat矩阵 cv::Mat channels[3];原创 2021-09-16 19:07:18 · 355 阅读 · 0 评论 -
OpenCV学习笔记04_图像的存储原理
OpenCV作为强大的计算机视觉开源库,很大程度上参考了MatLab的实现细节和风格,比如说,在OpenCV2.x 版本以后,越来越多的函数实现了MatLab具有的功能,甚至干脆连函数名都一模一样(如 imread, imshow,imwriter等)。Mat类 (Matrix的缩写) 是OpenCV用于处理图像而引入的一个封装类。Mat一般是二维向量,如果是灰度图,一般存放 <uchar>类型;如果是RGB彩色图,存放 <Vec3b>类型(Vec3b是cv::vector<原创 2021-09-16 18:58:43 · 403 阅读 · 0 评论 -
OpenCV学习笔记02_色彩空间
色彩空间①RGB空间(以24位真彩色为例)r通道:8位 256种颜色g通道:8位 256种颜色b通道:8位 256种颜色可以产生256256256=16777216种颜色(三维立方体)②RGBA相比RGB多了一个通道,透明度通道A(Alpha 透明度)我们常用的png格式的图片多为四通道RGBA格式③GRAY俗称灰度图,单通道格式,值为0~255,颜色值为黑白之间,0是黑色,255是白色Gray = R0.299 + G0.587 + B0.114Gray= (R38 + G75原创 2021-09-09 17:28:36 · 200 阅读 · 0 评论 -
C++多线程的简单创建
#include <iostream>#include <utility>#include <thread>#include <chrono> void f1(int n){ for (int i = 0; i < 5; ++i) { std::cout << "Thread 1 executing\n"; ++n; std::this_thread::sleep_for(s原创 2021-09-08 19:04:10 · 89 阅读 · 0 评论 -
第9届光电设计大赛参赛总结
很久没发博客了,最近事情挺多,总结一下历时2个月的光设赛,不后悔吧反正,可能因为我一直没把它当成主线任务,所以说到比赛的前几天还会有方案的变动,其实我觉得最重要的是过程吧,我很感激遇到一群负责任的队友,针对方案的讨论,模型的选择,还有好几天晚上一整晚的测量数据,都离不开他们。总要有些收获吧,毕竟熬了那么多的夜,比较直观的收获有4个,写了一个安卓app、会了3d建模与3d打印、修理手机、数据拟合,当然最重要的收获是认识了一群有理想的人,我也感谢我女朋友一直支持我,比赛结果也不知道怎么回事,已经不重要了。原创 2021-07-24 20:36:54 · 1438 阅读 · 1 评论