![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数字图像处理
豆腐白菜
这个作者很懒,什么都没留下…
展开
-
数字图像处理成长之路17:linux下训练样本并识别车牌实验
在网上找到了一个小样本首先列显示这些样本文件并重定向道data1.txt:ls -1 >> data1.txt然后修改后缀名:cat data1.txt | sed 's/\.bmp/\.bmp 1 0 0 60 17/'在文件前面加上路径前缀:cat data2.txt | sed 's/^/\/home\/test\/桌面\/原创 2017-11-21 19:59:01 · 776 阅读 · 0 评论 -
数字图像处理成长之路15:前景提取(最大似然估计EM算法与高斯混合模型)
先实践一下何为前景提取: 原始图像。 如果画面中有移动的物体,会以白色表现出来。 我理解的前景提取就是把画面中移动的物体提取出来。 这是opencv中给的示意图,来简单看看opencv代码:// Global variablesMat frame; //current frameMat fgMaskMOG2; //fg mask fg mask generated原创 2017-10-24 14:17:17 · 2713 阅读 · 0 评论 -
数字图像处理成长之路13:SIFT之极值点(子像元插值)
很多关于SIFT算法都会写到极值点的定位,这篇文章也离不开这以问题,然而这篇文章的重点是发现在定位的过程中用到的知识,这也是我写SIFT的目的,我究竟学会了哪些知识,上一篇我初步领略了尺度空间这一全新概念,这一篇我将学到子像素差值或者叫做亚像素差值。 下面这个文章写的不错,但是我们还是重新自己学习一下。已知函数,求函数在[0,4]间的最大值。 如果函数是离散的,那么最大值是5,但是函数是连续的,原创 2017-10-13 15:58:00 · 1547 阅读 · 0 评论 -
数字图像处理成长之路13:SIFT之尺度空间c++版
之前我从没听说过SIFT,真的是从零开始,而且是一个人自学。看了很多文章,下面这篇不错: http://www.cnblogs.com/JiePro/p/sift_1.html 有些理论看多了也还是似懂非懂,真正自己用代码试着去实现,就能发现算法的一些细节问题,然后能更好理解算法。 我尝试用c++描述SIFT的尺度空间。 const原创 2017-10-11 18:20:21 · 287 阅读 · 0 评论 -
数字图像处理成长之路11:harris角点检测
时间过去了大约一个月,成长之路已经写到第11篇,前面的10篇使我得到了锻炼,初步体验了数字图像处理的趣味,同时提高了自己的一些不足。比如数学知识有所巩固加强。在编程的过程中,我只是把原理初步的用c++描述出来,当运行程序后,发现效率总不令人满意,这也在提醒我,优化算法与代码的重要性,但在优化的过程中还要尽量不牺牲程序的可读性。程序的界面用的是QT写的,随着界面功能的增多,提高代码复用并减少对封装的破坏也是我关注的一个问题。原创 2017-10-04 14:35:04 · 693 阅读 · 0 评论 -
数字图像处理成长之路9:轮廓提取c++版
#简介什么是图像的轮廓?在这里不去深入研究它的定义,简单的理解,当人站在太阳下,产生的影子的边界就是轮廓。大致是这样子吧。#轮廓提取的原理做为一个初学者,试想如果提取轮廓?我首先想到的是沿着轮廓边界搜索。很显然,每个点有8个相邻点也就是8个方向,只要对每个点的8个方向做递归判断就可以了吧。这是我初次接触轮廓提取时的第一想法。当然,轮廓提取应该有很多算法,我是个学习者,并没有充足的时间去把每原创 2017-09-27 21:04:16 · 3706 阅读 · 2 评论 -
数字图像处理成长之路14:QT调用摄像头
前一阶段主要学习的是关于图片的算法,接下来开始学习关于视频的算法。在开始之前先要把视频显示出来,继续我之前的QT程序,看看如何把如何用QT显示摄像头中的数据。 mopencv->videoInit();//初始化摄像头 while (waitKey(5) < 0)//等待5毫秒,因为调用摄像头属于驱动范围,数据从驱动层到用户曾比较复杂,操作也会比较费时,我们给他5毫秒的反映时间,以待数原创 2017-09-26 17:00:03 · 481 阅读 · 0 评论 -
数字图像处理成长之路8:霍夫线变换
霍夫线变换原创 2017-09-24 18:50:27 · 324 阅读 · 0 评论 -
数字图像处理成长之路7:边缘检测(sobel canny)
简介边缘检测是图像处理中使用频率很高的方法,在进行更复杂的图像处理之前,我们常常先对图像进行边缘检测,以去除图像一些无用的部分,并保留一些对我们有用的部分。原理边缘检测意在检测出图像的边缘,那何为边缘?简单的理解是,边缘是图像中明暗变化剧烈的地方。如果从图像的x轴方向抽出一列数据,绘出它的图像,并假设是连续的曲线,则曲线陡升或陡降出就代表边缘。从数学角度看,陡升或陡降意味着该处的斜率比较大。反过来说原创 2017-09-22 19:41:43 · 1051 阅读 · 0 评论 -
数字图像处理成长之路6:滤波(中值 平均值 高斯 双边)
滤波1.中值滤波2.平均值滤波3.高斯滤波4双边滤波1.中值滤波这是一种简单的滤波方法,顾名思义,中值就是在参与计算的点中,通过排序,找到中间值。 比如上面的3x3图象矩阵,绿色的点是原图象上的原创 2017-09-21 20:22:57 · 1758 阅读 · 0 评论 -
数字图像处理成长之路5:仿射变换(旋转)
今天学习affine transformation,这个变换充分体现了数学之美,怪不得有那么一句话,“科学中的皇后是数学”。这个变换包含旋转,错切,翻转等,这里只通过学习旋转,来了解其中的共性。不同的变换只是核矩阵不同。我们只来看看旋转,旋转是如何实现的,网上有关于旋转矩阵核的推导,很简单。 如: http://ask.csdn.net/questions/218260至于旋转的原理或者公式,网原创 2017-09-20 15:33:39 · 674 阅读 · 0 评论 -
数字图像处理成长之路4: C语言与离散傅立叶变换(DFT)
这几天一直学习傅立叶变换,看了很多国内外资料,网上讲原理的很多,到了程序实现这块大多是Matlab,opencv等,这些软件的api对于我们理解DFT在计算机中的实现并没有多大帮助。于是想用C/C++实现DFT,经过不断的阅读与编程实验,最终程序有了还算满意的结果。“关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生原创 2017-09-16 14:40:58 · 2080 阅读 · 0 评论 -
数字图像处理成长之路3:操作像素(彩色sobel)
虽说opencv给我们提供了很多函数,但有时对于图像处理,我们会用自己的算法,而算法中一定会对图像的像素进行操作, 所以对图像像素的操作十分重要。比如,我遇到了一个问题,opencv的sobel算子例子中,需要先把彩色图片转变为灰度图,然后进行sobel边缘检测。 得到的是黑白图像的边缘。我的问题是如果省略灰度转换这一步,直接利用sobel算法,得到的是彩色的边缘图吗?于是我打算通过操作像素,自原创 2017-09-14 20:43:18 · 1229 阅读 · 2 评论 -
数字图像处理成长之路2:mat与通道
在opencv中,我们常常这样用,cv::Mat image; 下面让我们看看mat的内部。 打印image.channels,得到的会是几呢?答案是1,看来默认的Mat是1通道的,也就是灰度图。 好处是: 1节省了内存 2节省了图像处理的时间那么调用image = imread (“./test.jpeg”); 打印image.channels,得到的会是几呢? 答案是3,也就是RG原创 2017-09-14 15:44:10 · 662 阅读 · 0 评论 -
数字图像处理成长之路1:look up table
最近开始自学数字图像处理,学习了一段时间后也写了几个心得,从直方图均衡到边缘检测,接下来想学习特征检测,知识有些跳跃。要想在短时间了解一个知识的全貌,需要跳跃的学习,而要想巩固基础,需要细致研究。这就好象远看一座山,和走进一座山的区别。从今天起,打算从头细致的学习数字图像处理,尽量的不放过任何一个知识点。Look up table 简称LUT 计算机里出现的表,在我的理解来看,大多和加速有关。原创 2017-09-13 14:58:17 · 3980 阅读 · 0 评论 -
理解边缘检测,从0基础开始,数学知识是重点
0基础自学数字图像处理中的边缘检测,用了几天时间,大部分用在了学数学上。要想完成边缘检测,在程序上用不了多少代码,而恰恰是这简单代码的背后,存在着存在着诸多数学原理。为此我重学了一部分数学,在这段时间里,对数学的态度也发生了改变,由过去的觉得它枯燥,抽象,无法理解,到现在的觉得数学精巧,甚至有点习喜欢上数学。下面就把我这几点学习的过程描述一下:边缘检测中存在的一个重要概念是梯度。 强烈推荐一个外文原创 2017-09-10 20:10:35 · 341 阅读 · 0 评论 -
理解卷积
什么是卷积?有很多官方和非官方的解释,看了这些解释后我还是没有弄懂卷积的各个细节,经过一段时间学习后说说我理解的卷积。首先我们先看看卷积公式(离散型): 上面各项的含义是什么?在信号与系统中,x(i)代表一个输入,或者一个刺激,h(n)代表一个系统对单位输入信号或刺激的响应,y(n)代表在多次x 的输入下,该系统的整体响应。以一个单细胞细菌为例(如草履虫),我们用针扎一下该细菌,这相当于x输入,原创 2017-09-09 16:31:12 · 388 阅读 · 0 评论 -
数字图像处理成长之路10:理解直方图均衡化,从现象到原理
直方图均衡化是一种数字图像处理技术,先来看看一张图片。 这张图片我们称为原图,该图下面区域有些曝光不足,看上去比较暗。 再来看另一张图。 这张图片我们称之为目标图,比原图显得清晰,黑白较均匀,让人眼更容易接受。这张比较清晰的目标图是原图经过直方图均衡化处理后得到的。原创 2017-09-06 21:14:50 · 5462 阅读 · 4 评论 -
linux + qt +opencv + 直方图均衡化
在linux下用qt做了个界面,集成了opencv库,想完成一些图像处理功能,今天只是简单写写,日后会完善。 主要想说说直方图均衡化。 原图 原图的概率分布和累积分布函数(cdf)图均衡化后的图。原创 2017-09-03 20:48:23 · 594 阅读 · 0 评论