![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图像处理
文章平均质量分 79
FreemanLu
有人的地方就有江湖
展开
-
在Linux控制台下使用libjpeg显示JPEG图像在framebuffer上
1、引言通常情况下,在Linux控制台下是无法查看图像文件的,要想查看图像文件,比如要查看JPEG格式的图像文件,可能必须启动X-Windows,通过GNOME或者KDE之类的桌面管理器提供的图像查看工具查看图片内容。那么,能不能有办法在控制台下面简单地浏览图像内容呢。实际上,这是完全可以的。在Linux下有一个名为zgv的看图软件就是工作在控制台下的。不过,由于它所使用的底层图形库svgal转载 2013-12-31 10:12:27 · 2100 阅读 · 0 评论 -
三角网格数据结构
简介 三角网格是多边形网格的一种,多边形网格又被称为“Mesh”,是计算机图形学中用于为各种不规则物体建立模型的一种数据结构。现实世界中的物体表面直观上看都是由曲面构成的;而在计算机世界中,由于只能用离散的结构去模拟现实中连续的事物。所以现实世界中的曲面实际上在计算机里是由无数个小的多边形面片去组成的。比如下图的这些模型,在计算机渲染后由肉眼看是十分平滑的曲面,而实际上,计算机内部使用了转载 2014-02-13 17:15:31 · 8009 阅读 · 0 评论 -
种子点生长算法下——三维种子点生长
上一篇文章“二维种子点生长研究”介绍了二维种子点生长,对于平面图像,二维种子点生长其实很容易理解,其典型应用是“油漆桶”。例如在一个具有多片联通区域的二维图上,我们能用油漆桶寻找所需要的单片联通区域。 至于三维种子点生长,其目的与二维种子点生长一样,都是要找出图像中的联通区域。三维图像由于其多了一维,所以三维的联通区域就不太好用二维图片来查看了。关于三位图片的介绍可以参考第一篇“转载 2014-02-13 17:18:32 · 3929 阅读 · 2 评论 -
图像数据到网格数据-1——MarchingCubes算法
概述 之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征人体内部组织器官形状的一个三维图像。其中的感兴趣的组织器官通过体素的颜色和背景加以区别。如下图的人体足骨扫描图像。医生通过观察这样的图像可以分析病人足骨的特征,从而对症下药。转载 2014-02-13 17:21:27 · 9404 阅读 · 5 评论 -
哈希表的应用-浅析顶点聚簇网格简化算法的实现
前言 本篇接顶点去重那一篇,继续使用哈希表来实现网格算法。这次介绍的是一种比较简单的网格简化算法,叫做顶点聚簇。 网格简化 为了介绍这个算法,首先说明一下网格简化算法。随着计算机绘图在现代科技领域中的广泛应用, 计算机图形在现代制造业中发挥着重要的作用。计算机图形学中对模型的要求更加精密, 也更加复杂, 生成的面片数也更加庞大, 庞大的数据量必然对计算机的计算能转载 2014-02-13 17:24:49 · 1461 阅读 · 0 评论 -
图像数据到网格数据-3——Cuberille算法
前言 这是本博客网格生成算法系列的第三篇,第一篇里面介绍了最为流行的MarchingCubes算法,第二篇中使用新三角形表来对MC算法进行了简化改进,形成了SMC算法。而这篇将介绍一种新的不同与MC算法思路的新网格生成算法,叫做Cuberille法,这种算法的思想相比MC算法要简单,更加易于实现。 体素立方体模型 根据第一篇的介绍,我们知道MC算法的基本模型是把转载 2014-02-13 17:26:03 · 4408 阅读 · 2 评论 -
几种网格平滑算法的实现
网格平滑网格平滑属于数字几何处理领域的问题,计算机图形学和计算机辅助设计中,用多边形网格可以表示复杂的三维实体。随着三维扫描和曲面重建技术的发展,得到这些实体表面的多边形网格表示已经不是难事,但所得到的表面往往包含含噪声。在形状设计领域,在散乱点拟合和光滑形伏、纹理映射等应用领域,都有对平滑曲面的极大需求。故产生了网格平滑这一个研究点。 平滑前转载 2014-02-13 17:10:13 · 13573 阅读 · 4 评论 -
三角网格数据结构-2
基本Mesh结构 上篇文章讲述了一般的基本的Mesh应该至少包含点集和三角形集合的信息,也就是类似如下的定义方式:struct Point3d{public: float X; float Y; float Z; Point3d() { X = 0; Y = 0; Z = 0;转载 2014-02-13 17:16:50 · 2743 阅读 · 0 评论 -
图像数据到网格数据-2——改进的SMC算法
概要 本篇接上一篇继续介绍网格生成算法,同时不少内容继承自上篇。上篇介绍了经典的三维图像网格生成算法MarchingCubes,并且基于其思想和三角形表实现了对样例数据的网格构建。本篇继续探讨网格生成算法,并且在MC的基础上进行进一步的简化和改进,形成Simple Marching Cubes(简称SMC算法)。本篇主要介绍SMC算法的思路以及与MC算法的对比。同时也介绍如何在MC三角形转载 2014-02-13 17:23:02 · 2725 阅读 · 3 评论 -
浅谈二维和三维图像数据
首先对于任何一个二维图像,加载入内存后都能看作一个二维像素数组。假如是一张8位图像,它的每个像素值可以用一个0~255的unsigned char表示,也就是说图像可以看成一个unsigned char的数组。假设它的长和宽分别为width和height,那么这个图像用byte B[height,width](c#二维数组)或者用unsigned char B[height][width](C++转载 2014-02-13 17:13:51 · 10360 阅读 · 4 评论 -
基于八叉树的网格生成算法剖析
前言 对于网格生成这个主题,之前的网格生成系列的三篇博客文章分别介绍了MC算法,SMC算法以及Cuberille算法三种方法。同时还有一篇介绍网格生成与种子点生长算法高效结合的算法。本篇文章继续这一主题,介绍采用八叉树结构来进行网格生成的算法,这个算法并不是独立于之前介绍的算法,而是基于了SMC算法,同时也采纳了一些MC算法范畴内的思想。换句话说,就是使用八叉树对上述网格生成进行改良,从转载 2014-02-13 17:12:16 · 2516 阅读 · 1 评论 -
二值图像膨胀腐蚀算法的几种实现方式
膨胀与腐蚀算法 对图像处理有所了解的人都知道图像的形态学处理里最为基础的膨胀和腐蚀算法。二值图像即只有黑白两种颜色组成的图像,一般的白色为内容,黑色为背景。其实简单点理解二值图像的膨胀与腐蚀,腐蚀即是删除对象边界某些像素,也就是让白色的区域瘦一圈;而膨胀则是给图像中的对象边界添加像素,即让白色的区域胖上一圈。而这个“圈”的大小,则是由参数来指定的。下面的表展示了一幅图像经过膨胀和腐蚀算法转载 2014-02-13 17:09:07 · 4490 阅读 · 2 评论 -
structure from motion
重新看了一遍华盛顿大学的SFM重建的过程,对该过程果然又有新的理解。 文章提出的方法如下: (1)提取SIFT特征点; (2)每两幅图像之间进行SIFT特征点进行匹配; 匹配过程中首先采用了KD-TREE的方法对最近邻的特征点进行匹配,然后采用了多视角几何进行限制。值得注意的是多视角的几何限制,在多视角的图像匹配中经常出现(Geometry constriant)。转载 2014-01-26 18:00:31 · 1553 阅读 · 0 评论 -
浅议像素化与体素化part1—平面图形像素化
什么是像素化 学计算机的人往往都比较清楚图形和图像的区别,而且往往能够从数据结构的角度理解这两者的区别,一般来说,图形是由几何空间中的基本图元所组成,表现为用外部轮廓线条勾勒成的矢量图。例如由计算机绘制的直线、圆、矩形、曲线、图表等。而图像是由扫描仪、摄像机等输入设备捕捉实际的画面产生的数字图像,是由像素点阵构成的位图。例如在二维几何空间中,同样是为了表述一个四边形,从图形的角度去看,需转载 2014-02-13 16:56:44 · 2189 阅读 · 0 评论 -
种子点生长算法上——二维种子点生长
下文提到的种子点生长算法,包括泛洪法,扫描线法,区段法三种。文本先从最简单的泛洪法入手介绍种子点生长算法的相关概念。之后进一步讨论了扫描线法和区段法,同时提供了实验数据验证其中的一些结论。本文按照如下的结构来介绍:泛洪法扫描线法区段法算法分析对比以及实验一、泛洪法 1.简介 泛洪法,又叫Floodfill算法,属于图像处理算法,是从图像中寻找连通区域的经典算法。转载 2014-02-13 17:00:01 · 3189 阅读 · 1 评论 -
浅议顶点焊接与哈希表的设计
什么是顶点焊接? 之前的文章讨论了三角网格,顶点焊接这个主题是由三角网格建模衍生出来的。简单点说,顶点焊接(Vertex Welding)又可以叫做“顶点去重”,就是要在Mesh中去除重复的顶点,或者说去掉位置相重合的顶点,使之成为一个顶点,这样共有这些顶点的三角形就被“焊接”了起来。由之前的介绍Mesh的文章可以知道,Mesh实际上就是顶点的集合+三角形的集合,其中三角形是由三个指向顶转载 2014-02-13 17:19:51 · 1550 阅读 · 1 评论 -
泛洪法与SMC算法的综合使用
前言 本文是继承自之前的种子点生长系列文章和网格生成算法系列文章,主要介绍一种综合两类算法的思路的方法,实现了对种子生长区域的较为快速的网格生成,算法中大量使用查找表来实现代码的简化和运行效率的提高。本文介绍的方法采用了泛洪法结合SMC算法来实现对单联通区域的网格生成。这两种方法的结合具有一定的代表性。 单联通区域的网格生成 根据之前的文章介绍可以知道,种子转载 2014-02-13 17:27:11 · 3023 阅读 · 0 评论 -
寻找图像中的局部极大点
某个图像处理的任务需求被转化为一个寻找图像局部最大值的问题,例如下面的图像是一段来自医学投影的组织影像,其中用肉眼能够辨识出一些灰度值比较大的团块,这些团块都是代表着一定医学含义的组织。需求是找出类似这种团块的个数。原图需要找的团块 后来在ImageJ中发现了一个这个比较奇妙的算法,叫做FindMaxima,这个算法支持提供转载 2014-02-13 17:01:57 · 5185 阅读 · 1 评论 -
浅析基于二维轮廓线重构表面算法
轮廓线重构算法 由一组二维轮廓线重建出物体的三维表面是三维数据场可视化中的一种表面绘制方法。在医学图像可视化以及其他可视化领域中有着广泛的应用。三维表面重建实际上是对物体表面进行三角形划分,从轮廓线的角度出发就是将轮廓线上的顶点按照一定规则进行三角形拼接,从而构成可视的三维物体表面,再利用三维显示技术将其显示出来。本文讨论了一种实现轮廓线重构的简易方法,其关键的步骤体现在相邻轮廓线的编织转载 2014-02-13 17:04:10 · 4677 阅读 · 1 评论 -
一种适合于MC与SMC算法的哈希表设计
MC算法与SMC算法中的三角片焊接问题 在之前的关于MC算法与SMC算法的博文中介绍了算法的实现,文章主要围绕算法的核心问题,即三角片如何产生的问题进行了详细的描述。但由于实际应用中需要的等值面Mesh数据不是三角片的简单并集,所以需要进行所谓的顶点焊接(Vertex Welding)来生成正确的拓扑结构以反应三角片之间的共用顶点关系。顶点焊接,简单的说就是把三角片中重合的顶点算作一个顶转载 2014-02-13 17:07:33 · 1079 阅读 · 0 评论 -
针对大数据的种子点生长——分块生长的策略
前言 在之前的种子点生长系列中,探讨了使用三种提取图像中内容部分种子点生长算法,分别是泛洪法、扫描线法和区段法。我们知道这三种算法在空间上都需要占用三维图像的空间以及相应的位图标记表的空间。有时,我们需要处理一些体积相当大的数据,这些数据都是内存中无法放下的,如数十数百GB的数据,想要获得其中图像内容信息,一般需要对图像进行分块生长。 本文使用一种比较直接的思路对数据进行分块,转载 2014-02-13 17:28:44 · 1126 阅读 · 0 评论