数字图像

数字图像基本处理——几何变换(geometry operation)

▼魔方 西西 提交于 2020-03-24 15:33:38
本节我们总结一下数字图像的几何变换,区别于前面几种操作(白平衡,灰度变换,空间滤波)针对于像素强度,几何变换主要针对像素的位置。 对空间的操作主要包括仿射(线性)变换(平移,旋转,伸缩,剪切)和投影变换。每种变换方法的具体细节不展开阐述,就是把对像素(变量)的操作提取出来作为变换矩阵(其实也就是线性代数中的线性变换,推荐B站从空间几何的角度理解线性代数: https://b23.tv/BV1ys411472E/p1 )。每个矩阵对应一种变换空间,如果进行多种叠加操作就是对应矩阵不断左乘,多个线性空间不断作用的结果。 仿射变换 平移,旋转,伸缩是严格的2D线性变换,是刚体变换(本身的形态不发生变换),剪切可以保证图中的平行线不变。2D线性变换中的变量有6个,也就是自由度DOF=6。 2D线性变换通项如下: 具体来说: (图中的旋转对应逆时针旋转) 投影变换 (投影变换中不保证平行线仍然平行)投影变换对应原来的线性变换再除以一个线性变换,投影变换矩阵中前两行对应线性变换中的参数,这样可以用该3 X 3的矩阵统一线性变换及投影变换,当最后一行为[0 0 1]时就是线性变换。 图像插值 由图像几何变换带来一个问题就是变换之后的像素值可能不是一个整数,而我们所使用的像素值一般是整数,所以需要近似来解决。插值的关键思想就是保证变换后的像素点和最近的邻居最相似,最远的邻居最不相似,考虑的邻居越多

数字图像基本处理——空间滤波(spatial filtering)

房东的猫 提交于 2020-03-17 21:57:57
空间滤波器主要包括平滑滤波器和锐化滤波器,下面从理论和实践两个部分阐述。 理论 空间滤波的公式如下: 空间滤波的过程也就是不断用一个filter(一般为3X3)在图像上与同样大小的局部patch作用,作用结果更新在中心点上,所以需要m,n为奇数。 在2维时域信号上做卷积与此公式稍有不同,如下: 可以看到,空间滤波公式中两个+变成了-,对应于空间滤波中的filter旋转180度之后的filter相作用,所以当filter为对角线对称的时候,空间滤波与2维卷积是一样的,而通常filter是对角线对称的。区别于卷积,一般将空间滤波描述为correlation,即看filter和图片上local patch的相关性。 1、平滑滤波器 平滑滤波器的两个主要作用是模糊化和降噪(如美颜相机中的磨皮操作) 分母除以一个数保证变换后强度不会大增。 1.1 线性滤波 常用的线性滤波有均值滤波(频域上的低通滤波器)和高斯滤波。下图分别是均值滤波器(左)和高斯滤波器(右)示例: 一个例子就是处理如下左图,只想保留较大的点,通过平滑过滤器模糊化,将小点融合,该地方有个trick就是因为该图对比度比较明显,可以通过加阈值来截断亮点和暗点。 1.2 非线性滤波 常用的线性滤波有中值滤波和最大值滤波。 中值滤波器: 从上式很容易看出中值滤波就是在输入图像的patch上用中值代替该点。中值滤波器适用于突变的噪声点

OpenCV 基于logistic混沌对图像加密与解密

痞子三分冷 提交于 2020-02-01 02:54:55
标题数字图像加密方法分析 一、数字图像加密方法基本要求和分类 1.1图像加密算法要求 ①安全性。混淆和扩散是设计具有计算安全性的密码的必要条件。 ②实时性。加密算法的使用不能给图像数据传输和存取带来过大的延迟。 ③数据量不发生膨胀。 ④数据格式不变。 1.2 数字图像加密算法分类 ①基于空间域的像素置乱 ②基于混沌加密 ③基于变换域加密 ④基于秘密分割与秘密共享加密 ⑤基于神经网络和元胞自动机加密 ⑥基于盲源分离加密。 二、数字图像加密方法介绍 2.1 基于空间域的像素置乱 置乱变换可以快速地打乱像素位置,破坏图像中原有的空间有序性和局部相关性,把图像变得杂乱无章、无法识别,使图像呈现一种类似噪声的形式。为了保证加密之后还能正确恢复,置乱变换必须为一一映射。常用置乱方法有:Arnold变换及其扩展变换、Baker映射、幻方变换、魔方变换、基于S盒的置乱、基于拉伸折叠思想的置乱、基于Scan语言的置乱、基于骑士巡游的置乱、基于随机数排序的置乱、基于像素值排序的自适应置乱、基于线映射的置乱、基于队列的置乱和基于四叉树编码的置乱等。在上述置乱方法中,Arnold变换及其扩展变换采用了矩阵变换的形式,它们同Baker映射一样都能快速地将相邻像素分散开,像素的移动具有混沌特性,而且耗费的计算量很小。基于仿射变换的置乱使得所有的像素点均可能改变了位置,而猫映射、广义猫映射

【计算机视觉】数字图像的采样和量化——理论与实践

自闭症网瘾萝莉.ら 提交于 2020-01-17 21:47:57
之前有些过一篇类似的文章 【计算机视觉】数字图像以及图像处理的基本步骤 里面有涉及到采样和量化的知识,不过是简略地描述下 下面将详细地对数字图像的采样和量化进行阐述 我抄袭的书籍: 《数字图像处理(第三版)》[美] Rafael C.Gonzalez、Richard E.Woods 著 ——————————————下面是理论篇——————————————— 当我们使用数字成像系统对某个物体进行拍摄后,将得到一幅由传感器映射出的感知图像(或称连续图像),如: 一幅图片在坐标(x,y)以及幅度(灰度级)上都有可能是连续的,所以在转换成数字图像时需对坐标(x,y)以及幅度(灰度级)都进行“量化”以及“取样”操作: 其中—> 取样:坐标的数字化 其中—> 量化:幅度值的数字化 图二为图一沿着黄色直线A到B的感知图像幅度(也就是灰度级)曲线图,而图二这种看似随机变化是由图像的噪声引起的。为对图像进行数字化,我们需对直线AB上的图像噪声进行 等间距的取样 操作,如下图所示: 垂直刻度在图三曲线可用小方块显示: 这样的一组离散值就给出了取样函数: 在对坐标进行数字化后,也许对幅度进行离散化(数字化)的处理,图下左侧所示已分为8个离散区间的灰度标尺,小方块所在位置指出了其所对应8个灰度的唯一指定值,小方块的指定值取决于该位置与左侧灰度标尺的接近程度,如此

三、数字图像的卷积计算python实现

╄→尐↘猪︶ㄣ 提交于 2019-12-15 06:18:39
利用python实现数字图像的卷积 import cv2 import numpy as np import math import os import pandas as pd from tqdm import tqdm ### 首先将图片转化为灰度图像 image = cv2 . imread ( "peng.png" ) def rgb2gray ( image ) : h = image . shape [ 0 ] w = image . shape [ 1 ] grayimage = np . zeros ( ( h , w ) , np . uint8 ) for i in tqdm ( range ( h ) ) : for j in range ( w ) : grayimage [ i , j ] = 0.144 * image [ i , j , 0 ] + 0.587 * image [ i , j , 1 ] + 0.299 * image [ i , j , 1 ] return grayimage grayimage = rgb2gray ( image ) print ( "显示灰度图" ) cv2 . imshow ( "grayimage" , grayimage ) ## 设置卷积核 conv_kernel = np . array ( [ [

数字图像的图像与采集原理以及彩色图像、灰度图像、二值图像的转换原理

别来无恙 提交于 2019-12-10 00:27:28
ps:以下演示的所有代码都是在HDevelop编译器上编写 图像的数字化 现实中的图像是不能通过计算机去处理的,毕竟现实中的图像它没有“new”并产生一个对象到计算机系统里去。要将图像抽象成一个类需要分析图像本身,一只眼睛看景物它会是一个平面,而平面它属于二维的,我们可以把图像描述成一个二维平面。然而这样的图像我们称它为连续图像,它还是达不到计算机处理的要求,计算机处理要求是想图像中每个位置每个角落都能通过计算机精准定位和操作,比如说我想把某个区域的颜色变亮一点对比度增高一点其它地方不变。这样就需要将图像进行离散处理,把图像的每个位置每个角落都拆分为最小单位最小对象:pixel(像素)。这样,将连续图像经过离散处理成由 width * height 个像素对象组成的图像叫数字图像。因此一副静态图像可由一个二维数组来描述。二维数组中的一个元素,表示的是二维空间中的一个坐标点,表示该点形成的影像的某种性质。 数字图像存储与处理测试代码 (这里用的是halcon软件) read_image (Image, 'fabrik') *获取图像宽高 get_image_size (Image, Width, Height) *在图像上画一条y=x的直线 for i := 0 to Height-1 by 1 *获取像素的灰度值 get_grayval (Image, i, i, Grayval)

数字图像的采样和量化

不问归期 提交于 2019-12-06 12:28:52
图像采样: 采样是指一幅图像经过离散化成为数字图像才能被计算机处理。 图像的空间坐标离散化叫做空间采样,灰度的离散化叫做灰度量化。 简单理解就是用多少个点来表示一幅图。 个人理解是:采样的点越多,图像越细致,采样好坏是由分辨率来判断。 图像的量化: 一个像素点用多少位来表示,位数越多,表示的颜色越多。 量化级数最小的极端情况就是二值图像。 来源: https://www.cnblogs.com/132818Creator/p/11983687.html

写在Shader前, unity数字图像处理 上

假如想象 提交于 2019-12-03 16:13:18
孙广东 2016.8.4 参考: http://lolikitty.pix.net/ http://blog.csdn.net/u010019717 注意: 不是Shader 代码 1、 调整图片的饱和度 不太需要原理, 维基百科给出的公式: https://zh.wikipedia.org/zh-cn/YUV 其中提到了 主要的抽样(subsample)格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和YCbCr 4:4:4。 http://blog.csdn.net/u010019717 上面公式使用了 4:2:2, 下面代码使用 4:4:4 完全取样。 场景中都有什么, 然后挂上下面的脚本 设置参数值大小: using UnityEngine; using System.Collections; public class Test : MonoBehaviour { public Texture2D t; [Range(0, 5)] public float saturation = 1; // 饱和度调整,编辑器设置 Texture2D tt; void Start() { if (tt != null) { Destroy(tt); } transform.localScale = new Vector3((float)t.width /

数字图像的退化模型及原理

匿名 (未验证) 提交于 2019-12-03 00:18:01
图像复原的一般那过程:分析退化原因――建立退化模型――反映推演――恢复图像。 退化模型: 恢复模型: 现实中,造成图像退化的种类很多,常见的图像退化模型即点扩散函数(PSF)有如下情形: 1、线性移动退化 其中,d是退化函数的长度。实际情况中,如果线性运动的方向不是水平方向运动,可以类似求解。 2、高斯退化 其中,K为归一化常数,a为一个正常数,C为h(m,n)的圆形支持域。由高斯函数可知,高斯退化函数二维表达式可以分解为两个一维高斯退化函数的乘积。 3、散焦退化 其中,R是散焦半径。在信噪比比较高的情况下,在频域上可以观察到圆形的轨迹。 文章来源: 数字图像的退化模型及原理

【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)

白昼怎懂夜的黑 提交于 2019-12-01 09:36:32
import numpy as np import cv2 import argparse from Computer_Vision.Canny_Edge_Detection.sobel import sobel_edge_detection from Computer_Vision.Canny_Edge_Detection.gaussian_smoothing import gaussian_blur import matplotlib.pyplot as plt def non_max_suppression(gradient_magnitude, gradient_direction, verbose): image_row, image_col = gradient_magnitude.shape output = np.zeros(gradient_magnitude.shape) PI = 180 for row in range(1, image_row - 1): for col in range(1, image_col - 1): direction = gradient_direction[row, col] if (0 <= direction < PI / 8) or (15 * PI / 8 <= direction <= 2 * PI): before