历史上的今天
返回首页

历史上的今天

今天是:2025年01月13日(星期一)

正在发生

2018年01月13日 | 图像处理基本思想和算法研究

2018-01-13 来源:互联网

刚开始想把这部分内容命名为“基本算法”,意在介绍图像处理中的一些基本算法,后来仔细想想决定不这么写,因为图像处理是一个非常大的概念,图像处理不等于人脸识别,也不等于模式识别,直接介绍诸如图像处理基本算法之类的内容很容易写成空话,没有什么实际意义。读者有兴趣的话可以直接搜索“图像处理十大经典算法”,适当了解。

所谓图像处理,就是用计算机对图像进行分析,以达到所需结果的技术,又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。


万变不离其宗,算法是死的,重在思想。举个例子,在模式识别方向这个方向判断一个学生是否入门有一个非常简单的方法,就是“如果你能把图像很自然的想象成高维空间中的一个点”,那就说明在模式识别方面入门了,可以对图像进行分类了。


当然标准不是唯一,在其他领域如目标检测也会有其他的判断标准,总之我们要对图像进行处理,那么图像就不再只是图像,它可能会演变成各种不同形式的概念,可能是点,可能是面,还可能是一个坐标空间。在目标跟踪的经典算法粒子滤波中,将一个个的小图像块看做一个个粒子;在子空间理论中,将一系列图像放在一起构建一个成分主空间(例如主成分分析PCA算法等等。我不会详细介绍这些算法,说多了就显得抽象老套,但我要说的是我们一定要把图像本身理解好,它是一个图像,是一个矩阵,是一个信息的容器,是一种数据的表现形式,图像不一定都必须在视觉上有意义(比如频域的图像)。


总之图像处理的基本思想还是要立足于图像本身,要深度到图像内部结构中,思维要灵活。打个比方说,图像和高维空间中的点之间有什么对应关系,这是所谓的量变产生质变。总之一定要多想,多总结,主动去钻研,才能够真正领悟一些东西。最基本的东西往往蕴藏着深奥的道理,无论你现在多牛多厉害,都不能放掉最本源的东西。多想想图像是什么,有什么本质属性,你可能无法得到准确的答案,但肯定能得到一些有用的感悟(有点像哲学问题了)。


算法研究


算法研究应该是图像处理的核心工作,尤其是各大高校的博士硕士。这里我并不谈那些高大上的算法,我更想说的是一些算法研究的一些基础的东西,比如说一些基础课程,比如说矩阵运算。


研究图像处理的算法,离不开数学。在这里我建议图像处理方面的硕士一定要上两门课:《泛函分析》以及《最优化算法》,有的学校已经将这两门课列为了研究生阶段的必修课程。这两门可可以说是图像处理(至少是模式识别)的基础。我当初没上过最优化算法,但后来也自己补上了,不然真的是寸步难行。至于泛函我当时听课的时候也不是很懂,但是在之后的研究过程中发现很多图像处理的基本知识基本理论都和泛函分析中枯燥的定理如出一辙,没办法,有的东西本身就是枯燥的干货,学着费力,缺它不行。


其次我想说的是矩阵运算。图像就是矩阵,图像处理就是矩阵运算。大家为什么都喜欢用Matlab,就是因为它的矩阵运算能力实在是太强大,在Matlab的世界中任何变量都是矩阵。同样OpenCv之所以能流行,不仅仅是因为它良好的封装性,也是因为它的矩阵格式,它定义了Mat基础类,允许你对矩阵进行各种操作。Python也不例外,它的Numpy就是一个专门的线性代数库。


真正在图像编程过程中,那些看着高大上的API函数归根到底都是工具,查查手册就能找到,真正核心还是在算法,算法是由公式编写的,公式的单元是变量,而图像届的变量就是矩阵。所以,熟练去操作矩阵,求秩、求逆、最小二乘,求协方差,都是家常便饭。所以,如果你有幸能上《矩阵分析》这门课,一定要把它看懂,那里面都是干货。

推荐阅读

史海拾趣

Datasensor公司的发展小趣事

1972年,意大利的Romano Volta博士凭借对光电技术的深厚理解和前瞻性眼光,创立了DATALOGIC公司,并致力于自动化机器的光电传感器和控制产品的开发。这是Datasensor公司的起点,也是其日后成为全球工业自动化光电检测领域领导者的基石。在初创期,公司面临技术挑战、市场竞争和资金压力等多重困难,但Romano Volta博士的坚定信念和团队的共同努力,使公司逐渐站稳脚跟,并开始赢得市场的认可。

Digital Core Design公司的发展小趣事

面对版权问题的挑战和市场的变化,Core Design开始寻求变革。公司的创始人Jeremy Heath-Smith和Adrian Smith在《古墓丽影:黑暗天使》发行后不久就辞去了在Eidos和Core的职务,并创立了新的工作室Circle Studio。然而,这个新工作室最终也未能逃脱被市场淘汰的命运。在2006年6月,Circle Studio被Eidos彻底抛弃,并卖给了另一家公司Rebellion。虽然Core Design的名字被保留下来,但其实际的开发团队和运营已经发生了巨大的变化。在这个过程中,Core Design不得不面对现实,寻找新的发展机遇和方向。

以上这些故事展示了Core Design在电子行业中的发展历程,包括其初创时期的艰辛、成功时期的辉煌、挑战时期的困境以及变革时期的新生。这些故事都基于事实,旨在客观地呈现Core Design的历史和发展。

Discera公司的发展小趣事

Discera公司的产品在性能和稳定性上表现出色,很快就引起了美国军方的关注。经过严格的测试和评估,Discera的CMOS MEMS谐振器成功通过了美国军方的质量可靠性测试,并获得了军方的认证。这一成就不仅证明了Discera产品的卓越性能,也为公司进一步拓展军用市场打下了坚实的基础。

EUDYNA公司的发展小趣事

随着技术的不断进步和市场需求的日益增长,EUDYNA开始实施全球化战略。公司不仅在全球范围内建立了多个研发中心和生产基地,还积极拓展海外市场,与众多国际知名企业建立了紧密的合作关系。EUDYNA的全球化战略不仅为公司带来了更广阔的市场空间,也进一步提升了其品牌影响力和竞争力。

Apacer公司的发展小趣事

在各大电子展会上,Apacer宇瞻科技也频繁亮相,展示其最新技术和产品。在某次台北世界贸易中心的展会上,宇瞻科技展示了一款高端DDR3内存,其频率高达1600MHz,带宽达到了惊人的12800MB/s。这一产品吸引了众多观众的关注,也进一步彰显了宇瞻科技在内存模组领域的领先地位。

这五个故事只是Apacer宇瞻科技发展历程中的一部分,但它们足以展现出公司从创立到崛起的艰辛与辉煌。在未来的发展中,相信宇瞻科技将继续凭借其卓越的技术实力和持续的创新精神,为电子行业的发展贡献更多力量。

Hoffman_Enclosures__Inc.公司的发展小趣事

Hoffman始终将技术创新视为企业发展的核心驱动力。公司不断投入研发资源,致力于开发更加高效、节能、环保的电气机柜和温控产品。其中,数据中心液体冷却技术的推出,更是引领了行业潮流。Hoffman还积极参与国际标准的制定工作,通过遵循和践行全球行业标准,确保产品的通用性和高质量。这些努力不仅提升了公司的技术实力,也进一步巩固了其在行业内的领先地位。

问答坊 | AI 解惑

PCB板简介

PCB板简介 PCB基础知识 一、         PCB定义: PCB(PRINTING CIRCUIT BOARD)是指在覆鲷板上经过印刷、蚀刻、冲裁等加工手段生产出客户所要电图形的板。 二、       & ...…

查看全部问答>

RETALLMSG(1,(TEXT(":::SPL_IOControl.\r\n")));输出函数的理解

RETALLMSG(1,(TEXT(\":::SPL_IOControl.\\r\\n\"))); 这样一个函数的作用是什么? 相对于单片机有输出如P1.0=1; 这样输出效果很明显 RETALLMSG(1,(TEXT(\":::SPL_IOControl.\\r\\n\")));这样一个函数的输出效果是这样,执行了这条语句能看到什么 ...…

查看全部问答>

这是什么错误了阿 !!!

makeimg: run command: res2exe -r -c C:\\WINCE600\\OSDesigns\\2450\\2450\\RelDir\\smdk2450_ARMV4I_Release\\0409\\bthpnl.res C:\\WINCE600\\OSDesigns\\2450\\2450\\RelDir\\smdk2450_ARMV4I_Release\\bthpnl.cpl makeimg: Check for C:\\WI ...…

查看全部问答>

wince6上弄nor分区求助!!!

最近在弄nor分区, 遇到了一些问题, 想请教一下. 具体的情况是这样的: WINCE6, 板子是pxa270, 克隆的bsp是mainstonIII, 板子上有一块stratad的nor flash, 容量是32MB, 这块板子用来存放bootloader(不到1MB)和nk(20MB左右)之后还剩下10MB左右的空 ...…

查看全部问答>

关于交通灯程序延迟问题!!!!急!!!!!!

P控制规律如下:南北路口的绿灯、东西路口的红灯同时亮30秒;                 南北路口的黄灯闪烁5次,同时东西路口的红灯继续亮;              ...…

查看全部问答>

如何检查一个驱动dll是否被加载?

我这里碰到的一个问题是,不知道如何确定一个dll是否被系统加载了. 我这里自己想的思路就是: 1.打印串口调试信息,信息打印出来了,就表示加载了.     这个方法相对而言比较简单,但是有的时候不太方便. 2.通过USB连接之后,通过进程查看 ...…

查看全部问答>

C# 单片机 的问题

我是一个小公司,公司现在要开发一个煤矿管理系统,现在单片机的程序研发结束了。 单片机的数据格式,命令及命令格式,都以文档的形式给我了。 我现在想用C#与其通讯。 单片机:P89V51R 单片机接口:现用的是电话线。RS-232接口同时也在开发中 ...…

查看全部问答>

我用超级终端调试ARM板,可是在一个进程启动后就不能结束了!

进入超级终端手工开始这个进程倒可以结束(CTRL+C),但当我把这个进程写到开机自动启动脚本后就不能用CTRL+C结束了,这个进程的左右是不断往串口发数据并读取串口回复。现在整个超级终端的界面都是布满了发送的那几个数,导致不能控制这个ARM板子了 ...…

查看全部问答>

大功率led导热导电银胶及其封装技术和趋势

replyreload += \',\' + 680396;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

贡献大家都感兴趣的OLED显示汉字源码

花了半天时间研究TI的LM3S8962开发板自带OLED显示,在rit128x96x4.c中自己添加了一个RIT128x96x4HZStringDraw函数,实现16*16中文汉字显示,现在汉字存储在内部FLASH中,下一步准备把字库存储到外部FLASH中:Dvoid RIT128x96x4HZStringDraw(const ch ...…

查看全部问答>