像素

彻底理解数字图像处理中的卷积-以Sobel算子为例

回眸只為那壹抹淺笑 提交于 2019-12-26 09:04:55
彻底理解数字图像处理中的卷积-以Sobel算子为例 作者:FreeBlues 修订记录 - 2016.08.04 初稿完成 概述 卷积 在信号处理领域有极其广泛的应用, 也有严格的物理和数学定义. 本文只讨论卷积在数字图像处理中的应用. 在数字图像处理中, 有一种基本的处理方法: 线性滤波 . 待处理的平面数字图像可被看做一个大矩阵, 图像的每个像素对应着矩阵的每个元素, 假设我们平面的分辨率是 1024*768 , 那么对应的大矩阵的 行数 = 1024 , 列数 = 768 . 用于滤波的是一个滤波器小矩阵(也叫 卷积核 ), 滤波器小矩阵一般是个方阵, 也就是 行数 和 列数 相同, 比如常见的用于边缘检测的 Sobel 算子 就是两个 3*3 的小矩阵. 进行滤波就是对于大矩阵中的每个像素, 计算它周围像素和滤波器矩阵对应位置元素的乘积, 然后把结果相加到一起, 最终得到的值就作为该像素的新值, 这样就完成了一次滤波. 上面的处理过程可以参考这个示意图: 图像卷积计算示意图: 对图像大矩阵和滤波小矩阵对应位置元素相乘再求和的操作就叫 卷积 ( Convolution )或 协相关 ( Correlation ). 协相关 ( Correlation )和 卷积 ( Convolution )很类似, 两者唯一的差别就是 卷积 在计算前需要翻转 卷积核 , 而 协相关

数字图像处理------中值滤波

拟墨画扇 提交于 2019-12-26 08:53:28
一 中值滤波概念 中值滤波算法以某像素的领域图像区域中的像素值的排序为基础,将像素领域内灰度的中值代替该像素的值[1]; 如:以3*3的领域为例求中值滤波中像素5的值 图1 1)int pixel[9]中存储像素1,像素2...像素9的值; 2)对数组pixel[9]进行排序操作; 3)像素5的值即为数组pixel[9]的中值pixel[4]。 中值滤波对处理椒盐噪声非常有效。 二 中值滤波代码实现 项目工程: https://github.com/ranjiewwen/Everyday_Practice/tree/master/MedianFilter/MedianFilter/MedianFilter //中值滤波:本算法采用3*3的领域范围 void MyImage::MedianFilterOper() { //0. 准备:获取图片的宽,高和像素信息, int const num = 3 * 3; unsigned char pixel[num] = { 0 }; //保存领域的像素值 int width = m_bmpInfo.biWidth; int height = m_bmpInfo.biHeight; int widthbyte = (width * m_bmpInfo.biBitCount / 8 + 3) / 4 * 4; //保证为4的倍数 //相对于中心点

中值滤波

巧了我就是萌 提交于 2019-12-26 08:53:08
中值滤波    中值滤波法 是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值.   实现方法:   1:通过从图像中的某个采样窗口取出奇数个数据进行排序   2:用排序后的中值取代要处理的数据即可   中值滤波法对消除椒盐噪音非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大.   中值滤波在 图像处理 中,常用于用来保护边缘信息,是经典的平滑噪声的方法   中值滤波原理   中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是 把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。方法是去某种结构的二维滑动模 板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。二维中值滤波输出为g(x,y)=med{f(x-k,y-l), (k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字 形,圆环形等。 来源: https://www.cnblogs.com/cplusplus/archive/2012/05/11/2495449.html

论文《PatchMatch Filter: Efficient Edge-Aware Filtering Meets Randomized Search for Fast Corresponde》学习

天涯浪子 提交于 2019-12-26 02:41:38
Abstract (2013CVPR)虽然计算机视觉中的许多任务可以被优雅地形式化为像素标记问题,但一个典型的挑战是不鼓励这样的离散公式往往是由于计算效率。近年来,基于高效边缘感知滤波器的快速成本体积滤波研究为解决离散标记问题提供了一种快速的替代方案,其复杂性与支持的尺寸无关。然而,这些方法仍然需要遍历整个成本卷,这使得解决方案的速度与标签空间大小成线性关系。当标签空间很大时,通常是(亚像素精确的)立体和光流估计的情况,它们的计算复杂度很快变得无法接受。为了快速搜索最近邻,PatchMatch方法可以显著降低复杂度对搜索空间大小的依赖。但其像素级随机搜索和三维代价体积内的碎片化数据访问严重阻碍了有效代价片滤波的应用。本文提出了一种通用的快速多标记问题的计算框架,称为PatchMatch Filter (PMF)。我们第一次探索了有效和高效的策略,将这两种独立开发的基本技术编织在一起。、基于补丁的随机搜索和有效的边缘感知图像滤波。通过将图像分解为紧凑的超像素,我们提出了基于超像素的新搜索策略,对原有的PatchMatch方法进行了改进和推广。以稠密对应场估计为重点,论证了PMF在立体光流中的应用。我们的PMF方法达到了最先进的通信精度,但运行速度比其他竞争方法快得多,通常为大标签空间的情况提供10倍以上的加速。 1. Introduction 许多计算机视觉任务,如立体视觉

笨办法读RTR4(翻译) Real-Time Rendering 4th : Chapter 3 - The Graphics Processing Unit(下)

≡放荡痞女 提交于 2019-12-26 01:17:59
赶在 2019 结束之前把第三章结束,提前祝大家新年快乐! 实时渲染(第四版)Real-Time Rendering (Fourth Edition) 第3章 图形处理单元(GPU) Chapter 3 The Graphics Processing Unit 3.7 几何着色器 The Geometry Shader 几何着色器可以将图元转换为其他图元,而这在细分阶段是无法完成的。 例如,可以通过让每个三角形创建线边缘,将三角形网格转换为线框视图。 或者,可以将这些线替换为面向观察者的四边形,从而使线框渲染的边缘更粗 [1492] 。几何着色器是在2006年底随DirectX 10发行版添加到硬件加速的图形管道中的。它位于管道中的细分着色器之后,并且可以选择使用。 虽然是Shader Model 4.0的必需部分,但在较早的着色器模型中未使用它。 OpenGL 3.2和OpenGL ES 3.2也支持这种类型的着色器。 几何着色器的输入是单个对象及其关联的顶点。 对象通常由带状( strip ),线段( line segment )或点( point )构成的三角形所组成。 扩展的图元可以由几何着色器定义和处理。 特别是,可以传入三角形外部的三个附加顶点,并且可以使用折线上的两个相邻顶点。 参见图3.12。 使用DirectX 11和Shader Model 5.0

论文阅读笔记------Recovering High Dynamic Range Radiance Maps from Photographs(经典论文)

醉酒当歌 提交于 2019-12-25 13:01:56
相关概念: radiance用来描述物体表面单位面积上的能量分布,和方向有关。 In radiometry, radiance is the radiant flux emitted, reflected, transmitted or received by a surface, per unit solid angle per unit projected area . For example, radiance in direction of the optical axis of a LED is higher than it's radiance at an angle of 15°. irradiance用来描述物体表面单位面积总的入射能量,和方向无关。比如,用来描述传感器像元的入射光强(来自于不同方向的环境光的累加)。 In radiometry, irradiance is the radiant flux (power) received by a surface per unit area . Irradiance commonly is used referring to power incident on a surface. Film Response Recovery: Z: 数字像素值 X: 曝光值 : 曝光时间 E: 辐照度 X 与 Z

图像切割之(一)概述

强颜欢笑 提交于 2019-12-25 03:23:05
图像切割之(一)概述 zouxy09@qq.com http://blog.csdn.net/zouxy09 所谓图像切割指的是依据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对眼下基本的图像切割方法做个概述,后面再对个别方法做具体的了解和学习。 1 、基于阈值的切割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每一个像素的灰度值与阈值相比較,最后将像素依据比較结果分到合适的类别中。因此,该类方法最为关键的一步就是依照某个准则函数来求解最佳灰度阈值。 2 、基于边缘的切割方法 所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续性的反映,体现了灰度、颜色、纹理等图像特性的突变。通常情况下,基于边缘的切割方法指的是基于灰度值的边缘检測,它是建立在边缘灰度值会呈现出阶跃型或屋顶型变化这一观測基础上的方法。 阶跃型边缘两边像素点的灰度值存在着明显的差异,而屋顶型边缘则位于灰度值上升或下降的转折处。正是基于这一特性,能够使用微分算子进行边缘检測,即使用一阶导数的极值与二阶导数的过零点来确定边缘,详细实现时能够使用图像与模板进行卷积来完毕。 3 、基于区域的切割方法 此类方法是将图像依照相似性准则分成不同的区域,主要包含种子区域生长法

BMP图片格式

孤者浪人 提交于 2019-12-24 15:08:53
BMP图片   BMP采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BMP文件所占用的空间很大。BMP文件的图像深度可选lbit、4bit、8bit及24bit和32bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。BMP图片格式后缀为BMP或者bmp。   注意:数值在存储上都是按“高位放高位、低位放低位的原则”,如12345678h放在存储器中就是7856 3412)。 BMP文件分为四个部分,分别是位图文件头、位图信息头、彩色板、图像数据阵列。 例如:424D 4690 0000 0000 0000 4600 0000*2800 0000 8000 0000 9000 0000 0100 1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 ........ 在分析中为了简化叙述,以一个字(两个字节为单位,如424D就是一个字)为序号单位进行。 1.  位图文件头。长度为32个字节  1)1 文件标识符 424D="BM

1068 万绿丛中一点红 (20分)

心不动则不痛 提交于 2019-12-23 11:50:07
1068 万绿丛中一点红 (20分) 对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无二颜色的那个像素点,并且该点的颜色与其周围 8 个相邻像素的颜色差充分大。 输入格式: 输入第一行给出三个正整数,分别是 M 和 N(≤ 1000),即图像的分辨率;以及 TOL,是所求像素点与相邻点的颜色差阈值,色差超过 TOL 的点才被考虑。随后 N 行,每行给出 M 个像素的颜色值,范围在 [0,2​24​​) 内。所有同行数字间用空格或 TAB 分开。 输出格式: 在一行中按照 (x, y): color 的格式输出所求像素点的位置以及颜色值,其中位置 x 和 y 分别是该像素在图像矩阵中的列、行编号(从 1 开始编号)。如果这样的点不唯一,则输出 Not Unique ;如果这样的点不存在,则输出 Not Exist 。 输入样例 1: 8 6 200 0 0 0 0 0 0 0 0 65280 65280 65280 16711479 65280 65280 65280 65280 16711479 65280 65280 65280 16711680 65280 65280 65280 65280 65280 65280 65280 65280 65280 165280 165280 65280

OpenCV学习笔记(六) 滤波器 形态学操作(腐蚀、膨胀等)

妖精的绣舞 提交于 2019-12-23 05:37:19
转自: OpenCV 教程 另附: 计算机视觉:算法与应用 (2012), Learning OpenCV (2009) 平滑图像: 滤波器 平滑 也称 模糊 , 是一项简单且使用频率很高的图像处理方法。 平滑处理的用途有很多, 但是在本教程中我们仅仅关注它减少噪声的功用 (其他用途在以后的教程中会接触到)。 平滑处理时需要用到一个 滤波器 。最常用的滤波器是 线性 滤波器。 不妨把 滤波器 想象成一个包含加权系数的窗口,当使用这个滤波器平滑处理图像时,就把这个窗口滑过图像。 归一化滤波器 (Normalized Box Filter) 最简单的滤波器, 输出像素值是核窗口内像素值的 均值 ( 所有像素加权系数相等)。 blur( src, dst, Size( i, i ), Point(-1,-1) ); src : 输入图像 dst : 输出图像 Size( w,h ) : 定义内核大小( w 像素宽度, h 像素高度) Point(-1, -1) : 指定锚点位置(被平滑点), 如果是负值,取核的中心为锚点。 高斯滤波器 (Gaussian Filter) 最有用的滤波器 (尽管不是最快的)。 高斯滤波是将输入数组的每一个像素点与 高斯内核 卷积将卷积和当作输出像素值。 GaussianBlur( src, dst, Size( i, i ), 0, 0 ); src :