![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
文章平均质量分 59
xiao张的da世界
更新全看心情,和在没在划水
展开
-
c++读取raw文件
【代码】c++读取raw文件。原创 2022-09-27 21:29:57 · 2156 阅读 · 1 评论 -
OpenCV学习笔记18_图像处理中的金字塔是个啥?
终于知道图像金字塔是什么了!!!原创 2021-12-22 20:19:17 · 2030 阅读 · 1 评论 -
图像分辨率
文章目录分辨率分辨率空间分辨率百科介绍为:单位英寸中所包含的像素点数。在图像上的反映就是图像的细腻程度;记住一句话:分辨率越大,细节越明显分辨率空间分辨率空间是图像处理中模拟人眼看物体的远近问题,人眼离物体越远物体越小,细节越模糊,人眼离物体越近物体越大,细节越明显。例子:可以想象一下你开车的时候前面有一辆黑色的车:距离很远的时候你看见的是一团黑色,甚至分不清是什么;稍微近一些你可以看出来这是一辆黑色的车,但是分不清具体是轿车还是suv;再近一些你可以看出来这是一辆黑色的轿车,但是看不原创 2021-12-21 18:25:01 · 966 阅读 · 0 评论 -
好文分享_图像语义分割技术
十分钟看懂图像语义分割技术转载 2021-12-10 10:54:50 · 89 阅读 · 0 评论 -
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 · 2949 阅读 · 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 · 3585 阅读 · 0 评论 -
OpenCV学习笔记15_仿射变换与透视变换
文章目录一、仿射变换什么是仿射变换公式推导插值方法:双线性插值二、透视变换三、代码四、结果原图翻转(上下左右)大小变化绕中心旋转偏移opencv结果:缩小透视变换一、仿射变换什么是仿射变换仿射变换也称仿射投影,是指几何中,对一个向量空间进行线性变换并接上一个平移,变换为另一个向量空间。所以,仿射变换其实也就是在讲如何来进行两个向量空间的变换。对于一幅图像,可以看作很多个坐标的集合,每个坐标可以代表一个向量,由此可以将图像看作向量集合,那么在二维坐标系上:公式推导假设存在一个向量空间V:V=(a原创 2021-11-26 13:04:42 · 2410 阅读 · 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 · 1552 阅读 · 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 · 2639 阅读 · 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 · 2513 阅读 · 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 · 3424 阅读 · 0 评论 -
OpenCV学习笔记10_形态学变换
一、什么是形态学形态学一般指生物学中研究动物和植物结构的一个分支。用数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。形态学图像处理的数学基础和所用语言是集合论。形态学图像处理的应用可以简化图像数据,保持它们基本的形状特性,并除去不相干的结构。二、形态学变换形态学操作是根据图像形状进行的简单操作,一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它原创 2021-11-05 14:21:29 · 483 阅读 · 0 评论 -
OpenCV学习笔记09_掩码操作(卷积操作)
掩码操作根据掩码矩阵(也称作核)重新计算图像中每个像素的值。掩码矩阵中的值表示近邻像素值(包括该像素自身的值)对新像素值有多大影响。从数学观点看,我们用自己设置的权值,对像素邻域内的值做了个加权平均。图像的掩码操作是指通过掩码核算子重新计算图像中各个像素的值,掩码核算子刻画领域像素点对新像素值得影响程度,同时根据掩码算子中权重因子对像素点进行加权平均。图像掩码操作常用于图像平滑、边缘检测、特征分析等区域。具体思路为8邻域的像素点与本身像素点作加权运算(kernel size:3x3)实现方式(三通道原创 2021-11-02 12:30:21 · 2004 阅读 · 0 评论 -
OpenCV学习笔记08_对比度增强
1.对比度2.线性变换3.直方图均衡化4.直方图正规化5.伽马校正6.限制对比度的自适应直方图均衡化(CLAHE)原创 2021-10-26 16:21:47 · 736 阅读 · 0 评论 -
技术好文分享_cv::Mat 类的成员函数详解
入口:矩阵类的成员函数详解!!!转载 2021-10-20 18:50:09 · 176 阅读 · 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 · 253 阅读 · 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 · 194 阅读 · 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 · 353 阅读 · 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 · 400 阅读 · 0 评论 -
OpenCV学习笔记03_通道和位深
通道和位深什么是图像通道图像处理中有一个很重要概念叫图像通道:在RGB色彩空间下就是指那单独的红色、绿色、蓝色部分。也就是说,一幅完整的图像,是由红色绿色蓝色三个通道组成的,即使图像中看起来没有蓝色,只能说蓝色通道的值均为0,但不能说没有蓝色通道存在。“存在、值为零”和“不存在”是两个不同的概念。如果关闭了红色通道,那么图像就偏青色。如果关闭了绿色通道,那么图像就偏洋红色。如果关闭了蓝色通道,那么图像就偏黄色。相应的有HSV色彩空间,有Ycbcr,BGRA色彩空间也是一个道理。什么是位深无论你原创 2021-09-16 18:39:29 · 367 阅读 · 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 · 193 阅读 · 0 评论 -
OpenCV学习笔记01_认识OpenCv常用头文件
1、opencv.hpp万能模块万能头文件,包含所有OpenCv函数。2、core.hpp核心功能模块主要包含了opencv基本数据结构,动态数据结构,绘图函数,数组操作相关函数,辅助功能与系统函数和宏。3、Highgui.hpp高层GUI图像交互模块主要包换了图形交互界面,媒体I/O的输入输出,视频信息的捕捉和提取,图像视频编码等。4、Imgproc.hpp图像处理模块包括线性和非线性图像滤波,几何图像变换(调整尺寸,仿射和透视扭曲,通用的基于表的重新映射),色彩空间转换,直方图等的图像处理原创 2021-09-08 15:03:59 · 638 阅读 · 0 评论 -
手机像素与分辨率的关系
前几天弄的安卓app今天测试突然变慢了,巧了的是安卓手机出毛病了(180买的二手安卓机)不能ADB调试,更巧的是电脑安卓模拟器也打不开(网络适配器出问题了),Android studio运行不了debug模式,靠我400度的近视眼手动找了一下午bug,结果最后发现他妈的调错了方法,所以说近视眼是不是不配当程序员???但是也教会了我一些道理:买手机不仅要看相机像素还要看手机分辨率分辨率:手机分辨率(屏幕分辨率)是屏幕图像的精密度,是指手机所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成..原创 2021-06-24 18:08:52 · 2034 阅读 · 0 评论 -
如何使用OpenCV打开未知网络摄像头
如何使用OpenCV打开未知网络摄像头这几天在研究艾睿光电的红外热成像机芯,IRay有自带的SDK,但是一时半会很难搞懂,我尝试自己通过OpenCV打开然后自己做图像处理相关的算法。这里以艾睿摄像头为例,需要下载ONVIF Device Test Tool这个工具:在打开摄像头之前,确保网线未损坏,打开ONVIF Device Test Tool选择1.首先在C++里面OpenCV需要创建一个VideoCapture对象。2.利用OpenCV创建一个Mat矩阵对象src用来存放读入的帧数据。3原创 2021-06-03 19:13:21 · 1769 阅读 · 3 评论