数字图像处理
文章平均质量分 80
与光同程
如果想拥有从未有过的东西,就去做你从未做过的事
展开
-
【数字图像处理】OpenCV相机标定 计算内参外参
相机标定理论四个坐标轴的变换关系:(1)从 world 到 camera(2)从camera到image(3)从 image 到 pixel(4)从world 到 pixel畸变参数(distortion parameters)在几何光学和阴极射线管(CRT)显示中,畸变(distortion) 是对直线投影(rectilinear projection)的一种偏移。简单来说直线投影是场景内的一条直线投影到图片上也保持为一条直线。那畸变简单来说就是一条直线投影到图片上不能保持为一条原创 2022-01-30 20:27:11 · 9229 阅读 · 2 评论 -
【机器人原理与实践(二)】单目摄像头标定与单目测距
文章目录摄像头标定4.1 单目相机的建模4.1.1 图像坐标系到像素坐标系的转换4.1.2相机坐标系到图像坐标系的转换4.1.3 合并矩阵4.2 固定向下摄像头标定4.3 俯视摄像头标定4.4 本章小结摄像头标定我们可以想到在单目测量中我们在图像中找到某个目标以后可以获得的是一组像素的坐标,对于这样的一组像素并没有与实际空间中的转换关系,所以我们使用视觉传感的第一步就是尝试进行视觉标定,将图像中的坐标转换为实际的坐标。摄像机标定(Camera calibration)简单来说是从世界坐标系转换为相机坐原创 2021-05-31 15:09:05 · 3430 阅读 · 1 评论 -
【数字图像处理】OpenCV3 扩展模块学习笔记
1. 特征检测方法1.1. 特征定义1.2. 角点检测原理1.2.1. Harris角点检测原理1.2.2. Tomasi角点检测原理1.2.3. SURF特征检测1.2.4. SIFT特征点检测1.2.5. HOG 特征检测1.2.6. LBP 特征提取1.2.6.1. 原始LBP1.2.6.2. 圆形LBP算子1.3. HAAR特征提取1.3.1. 1.什么是haar特征?1.3.2. 2.如何利用特征 区分目标?1.3.3. 3.如何得到这个判决?1...原创 2021-05-05 17:12:42 · 230 阅读 · 0 评论 -
【数字图像处理】OpenCV3 学习笔记
1. 加载保存显示图像2. 操作图像像素2.1. 方法1:使用 Mat 中对矩阵元素的地址定位的知识2.2. 方法二:使用 Mat::at 函数2.3. 方法三:使用 Mat 的一个模板子类 Mat_2.4. 方法四:使用 Mat::ptr 模板函数3. 图像掩模4. 图像线性变换4.1. 图像线性混合4.2. 图像亮度与对比度4.3. 线性模糊4.3.1. 均值模糊4.3.2. 高斯模糊5. 形态学操作5.1. 腐蚀膨胀5.2. 开闭操作5.3. 顶帽.原创 2021-05-05 17:10:43 · 1424 阅读 · 7 评论 -
【数字图像处理】嵌入式图片显示(LiteCV应用)
嵌入式图像显示在最开始接触嵌入式LINUX的时候就尝试做了将一个BMP图片显示在嵌入式framebuffer显示器中,但是对于jpeg与png图片没有什么办法,在完成了LiteCV的底层架构后,就实现这个图像显示的程序。使用方式:./display /dev/fb0 PATH(.jpg,.bmp,.png)/* * @Descripttion: 基于嵌入式LINUX的diplay程序 * @version: V1.0 * @Author: Yueyang * @email: 1700695原创 2021-03-14 01:27:53 · 954 阅读 · 0 评论 -
【数字图像处理】基于SeetaFace2的人脸检测
(一)Seetaface2 基本概念1.1 图像1.1.1 结构定义作为图像处理的C++库,图像存储是一个基本数据结构。接口中图像对象为SeetaImageData。 struct SeetaImageData { int width; // 图像宽度 int height; // 图像高度 int channels; // 图像通道 unsigned char *data; // 图像数据 };这里要说明的是data的存储格式,其存储的是原创 2020-11-28 16:21:47 · 2488 阅读 · 0 评论 -
【数字图像处理】基于qrencode的二维码生成C语言实现
文章目录(一)关于QR二维码一:什么是二维码二:什么是QR二维码三:将数据编码成QR码的流程(二)编译QRencode(三)使用libqrencode.a(四)效果(五)写在后面(一)关于QR二维码一:什么是二维码二维码 (2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上) 分布的黑白相间的图形记录数据符号信息的。 在许多种类的二维条码中,常用的码制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, P原创 2020-11-26 18:46:11 · 2030 阅读 · 1 评论 -
【数字图像处理】指针式仪表示数读取C语言实现
文章目录LiteCV 使用说明(一)写在前面(二)简单的测试一下吧(1)Windows下的测试(2)Linux下的测试(3)arm(三)如何快捷的编译代码(1)首先我们来看一下我们需要编译哪些文件(2)怎么编译呢(I)windows下的编译(一)按照我写的脚本编译1)你需要先下载以下两个软件(二)gcc直接编译的方法(3)不想用jpeg,png图片的可以不看了MSYSzliblibpnglibjpeg(II)Linux下的编译与arm交叉编译libjpeg编译:libPng编译:(3) 交叉编译基于已经写好原创 2020-11-25 01:39:17 · 1384 阅读 · 0 评论 -
【数字图像处理】Hough变换C语言实现
文章目录(一)Hough圆检测程序设计(1) 因为如果直接进行Hough圆的投票的话,我们需要一个3维的表保存行,列,角度信息。我们将这个投票过程分成两个步骤。(2) 首先完成对于固定半径的圆的投票。然后在对每一个半径的圆的投票进行比较。(3) 对一个半径范围内的所有圆进行一次(1)中的操作,然后,从中选取票数最高的圆,那么这个圆就是我们想要的圆了。(4) 具体程序请参考Litecv/Imgproc/li_canny.c(二) Hough直线检测(三)代码实现(一)Hough圆检测经过图像的预处理后,我原创 2020-11-25 01:13:43 · 2040 阅读 · 0 评论 -
【数字图像处理】Canny边缘检测C语言实现
文章目录(一)边缘检测步骤1. 彩色图像转换为灰度图像2. 对图像进行高斯模糊3. 计算图像梯度,根据梯度计算图像边缘幅值与角度(这里其实用到了微分边缘检测算子来计算梯度幅值方向)4. 非最大信号压制处理(边缘细化)5. 双阈值边缘连接处理6. 二值化图像输出结果(二)图像的梯度与方向角计算(1)sobel算子(2) Prewitt算子(3) Robert算子(4)三种算子效果比较(三)非极大值抑制(四)图像双阈值化与边缘连接(五)代码实现li_can原创 2020-11-25 01:01:51 · 4657 阅读 · 0 评论 -
【数字图像处理】图像形态学算法C语言实现(图像卷积,膨胀,腐蚀,开运算,闭运算,顶帽,黑帽,雕版,锐化)
文章目录(一)图像卷积1. 图像卷积2. 数字信号处理中的卷积3 数字图像处理中的卷积(二)图像卷积实现各种形态学运算腐蚀膨胀形态学梯度开运算闭运算顶帽黑帽雕版锐化li_conv.cmain.c(三)效果展示原图腐蚀膨胀形态学梯度开运算闭运算顶帽黑帽雕版锐化(一)图像卷积1. 图像卷积图像卷积是进行空间域滤波与梯度运算的基础。首先我们需要理解卷积的运算方式从而可以编程实现。2. 数字信号处理中的卷积卷积一词最开始出现在信号与线性系统中,信号与线性系统中讨论的就是信号经过一个线性系统以后发生的变化。原创 2020-11-25 00:42:05 · 2941 阅读 · 0 评论 -
【数字图像处理】图像滤波C语言实现(中值,均值,高斯)
文章目录(一)均值滤波(二) 高斯滤波(三) 中值滤波(四)选择滤波算法(五)代码实现li_smooth.cmain.c(六)写在后面(一)均值滤波用其像素点周围像素的平均值代替元像素值,在滤除噪声的同时也会滤掉图像的边缘信息。通过编程实现一个3X3的均值滤波器(example/conv/conv.c),滤波效果如下:图表 4 均值滤波1图表 5 均值滤波2分析:均值滤波算法简单能很快的对图像进行平滑处理, 也就是能将由于屏幕显示的分辨率不高的图像出现的锯齿边缘平滑, 均值滤波的缺点是由于对原创 2020-11-25 00:21:01 · 6777 阅读 · 1 评论 -
【数字图像处理】编码解码jpeg和png图片(C语言实现)
摘要:在本篇文章中本人将简单阐述图片编码的原理与实现方法。同时通过 windows平台下 mingw编译的libjpeg,libpng, zlib 第三方库,然后实现两种图片的编码与解码。(一)写在前面前一段时间本人一直在进行Opencv有关的学习,可是在学完了一堆又一堆的函数之后,发现自己对于图像处理的知识其实本质上还是什么都不会。我相信真正图像处理一定不是仅仅调用几个函数就可以了事的,一...原创 2019-11-21 23:49:34 · 10613 阅读 · 3 评论 -
【数字图像处理】图像的灰度变换和直方图均衡化处理
摘要:在本篇文章中我将先对于灰度变换的一些基础的知识进行陈述。在那之后我将基于先前已经完成的基于图像处理的基础代码实现图像的灰度变换。为了可以绘制一幅直方图,我不得不在从底层实现一些基础的画笔工具,随后基于前面的灰度变换,我可以绘制出一幅图像的直方图。基于直方图可以对于图像的一些基础的特征进行分析。接着实现了一个可以进行直方图均衡化处理的函数,实现图像加强的目标。最后基于一种特殊的情况分析直方图均...原创 2019-11-10 02:15:36 · 8078 阅读 · 0 评论 -
【数字图像处理】基于opencv的图像采集与拼接
最近准备开始着手学习计算机视觉,首先还是从opencv开始学起。在opencv平台首先实现摄像头实时采集图像,按下空格拍照,拍完四张图片后实现图像的简单拼接。1.图像的采集#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>...原创 2019-09-17 15:22:32 · 1413 阅读 · 0 评论 -
【数字图像处理】图像几何变换之 图像的极坐标变化展开鱼眼图
(一)基础知识极坐标变换及其反变换的关键在于,根据极坐标变换前的图像(我们称为“方图”)确定极坐标变换后的图像(我们称为“圆图”)上每个像素点的像素值。也即是找到“圆图”和“方图”间几何坐标的对应关系。1、极坐标变换原理:如下图所示,实现极坐标变换的关键即在于找到圆图上任一点P(i,j),在方图上对应的点p(m,n),然后通过插值算法实现圆图上所有像素点的赋值。方图上,其行列数分别为M...原创 2019-11-09 01:02:31 · 5017 阅读 · 3 评论 -
【数字图像处理】图像感兴趣区域与图像放大与缩小
(一)基础知识图片的放大和缩小如果不是等比例的话一定会带来图像的畸变。(1)图像的缩小(2)图像的放大(3)图像任意不成比例放大(二)软件设计在这里我为了省事并没有进行特别复杂的查只算法而是直接用之前的像素值填充。所以放大倍数超过一定限度一定会产生失真。//cols横向 ,rows纵向Mat MatReshape(Mat src,u32 cols_c,int rows...原创 2019-11-09 00:40:29 · 1917 阅读 · 0 评论 -
【数字图像处理】图像的几何变换之 图形平移与旋转
(一)什么是图像几何变换图像的几何变换主要就是一下这些。这里只是一些最简单的函数处理·图像的平移变换·图像的镜像变换·图像的转置变换·图像的旋转变换·图像的缩放这里我主要实现了平移和旋转(二)程序设计GeoTrans.c/**版权所有 (C)2019,Yueyang.*文件名称:GeoTrans.c*内容摘要:LiteCV几何变换*当前版本:V1.0*作者:杨越...原创 2019-10-31 23:53:00 · 4677 阅读 · 0 评论 -
【数字图像处理】BMP图片的读取显示存储(C语言实现)
(一)背景介绍这段时间接到了一个新活,是关于图像处理的一个探地摄像头的项目。所以也差不多是时候开始学习一下数字图像处理的知识了。本来我们的方案是直接移植opencv,编译一下以后其他就基本啥都不用管了,非常方便。但是最后还是决定不适用这个方案。为什么放弃了opencv1.opencv的平台限制opencv的平台依赖性太强,只能运行于X86电脑和嵌入式LINUX平台,这意味这一些底层永远都...原创 2019-10-31 23:34:16 · 10635 阅读 · 5 评论