2015-11-14 15:20:37 baimafujinji 阅读数 6048

全文目录请见

图像处理中的数学原理详解(Part1 总纲)

http://blog.csdn.net/baimafujinji/article/details/48467225


在泛函分析中,索伯列夫空间并不像 巴拿赫空间或者希尔伯特空间那么引入注意。但是在图像处理中,索伯列夫空间在介绍BV空间(有界变差函数空间)时,会被提到。而BV函数空间对于理解TV算法(偏微分方程在图像处理中的重要内容)至关重要!所以我特别在“图像处理中的数学原理详解”系列文章中留出一个小节来对索伯列夫空间进行必要的介绍。


2.3.7 索伯列夫空间



由广义导数的定义可以看出,这种导数不是关于函数的个别点处局部性质反映,因为它是通过在整个区间上积分的极限来确定的,而积分是一种关于函数的整体性质的概念。但也应该指出,广义导数其实是对通常意义下导数概念的推广。如果函数本身是通常意义下可微的,则其导函数与广义导数是一致的。




2019-05-28 17:16:10 weixin_42264234 阅读数 75

图像修复Tv算法:

I = (imread('color.bmp'));% 读原始修复图
grey = rgb2gray(I);
[row,col,k] = size(I);% 得到图像长度与宽度
subplot(121);imshow('color.bmp');title('原图');
flag=10000;%迭代次数
lambda=0.2;
a=0.2;
I1=I;


for l=1:flag
    I1 = tvdeal(I1,row,col,grey);
end



subplot(122);imshow(I1,[]);title('TV算法修复');

函数
tvdeal

function [ I1 ] = tvdeal( I1,row,col,grey_I )
lambda=0.2;
a=0.5;
for k=1:3
    for i=2:row-1
        for j=2:col-1
            if grey_I(i,j)<4      %如果当前像素是被污染的像素,则进行处理

                Un=sqrt(double(((I1(i,j,k)-I1(i-1,j,k))^2+((I1(i-1,j-1,k)-I1(i-1,j+1,k))/2)^2)));
                Ue=sqrt(double(((I1(i,j,k)-I1(i,j+1,k))^2+((I1(i-1,j+1,k)-I1(i+1,j+1,k))/2)^2)));
                Uw=sqrt(double(((I1(i,j,k)-I1(i,j-1,k))^2+((I1(i-1,j-1,k)-I1(i+1,j-1,k))/2)^2)));
                Us=sqrt(double(((I1(i,j,k)-I1(i+1,j,k))^2+((I1(i+1,j-1,k)-I1(i+1,j+1,k))/2)^2)));

                Wn=1/sqrt(Un^2+a^2);
                We=1/sqrt(Ue^2+a^2);
                Ww=1/sqrt(Uw^2+a^2);
                Ws=1/sqrt(Us^2+a^2);

                Hon=Wn/((Wn+We+Ww+Ws)+lambda);
                Hoe=We/((Wn+We+Ww+Ws)+lambda);
                How=Ww/((Wn+We+Ww+Ws)+lambda);
                Hos=Ws/((Wn+We+Ww+Ws)+lambda);

                Hoo=lambda/((Wn+We+Ww+Ws)+lambda);

                I1(i,j,k)=Hon*I1(i-1,j,k)+Hoe*I1(i,j+1,k)+How*I1(i,j-1,k)+Hos*I1(i+1,j,k)+Hoo*I1(i,j,k);
            end
        end
    end
end

end



所需要的时间和循环次数成正比,修复效果也和循环次数成正比

2018-02-08 12:19:42 huayunhualuo 阅读数 1606


1 若干概念

  • 图像(image):我们通常在直观上理解其意义,例如人类眼睛视网膜上的图像或者TV摄像机抓取的图像。
  • 亮度(brightness):集成了不同的光学量,将亮度作为基本量使我们得以避免对图像的成像过程进行描述。
  • 亮度图像(intensity image):我们将这种记录了明亮度信息的2D图像。
  • 透视投影(perspective projection):u=xfz v=yfz
  • ScreenClip.png
  • 灰阶(gray-level):在单色图像中最低值对应于黑,而最高值对应于白。在他们之间的灰度值是灰阶。
  • 数字图像的品质随着空间、频谱、辐射计量、时间分辨率增长而提高
    • 空间分辨率(spatial resolution):由图像平面上图像采样点间的接近程度确定的。
    • 频谱分辨率(spectral resolution):由传感器的光线频率带宽决定的。
    • 辐射计量分辨率(radiometric resolution):对应于可区分的灰阶数量。
    • 时间分辨率(time resolution):取决于图像获取时间采样间隔。

2 图像数字化

  • 采样(sampled):将f(x,y)采样为一个M×N的矩阵。
  • 图像量化(quantization):给每一连续的样本数值一个整数数字。

2.1 采样

  • 一个连续图像在采样点处被数字化,这些采样点是在平面上排列的,称它们的几何关系为栅格(grid).ScreenClip1.png
  • 光栅(raster):在点之间定义了相邻的栅格。
  • 像素(pixel)(图像元素 image element):栅格中一个无限小的采样点对应于数字化图像中的一个像元。

2.2 量化

  • 量化(quantization):采样图像数值fs(jΔx,kΔy)用一个数字表示。将图像函数的连续数值(亮度)转变为其数字等价量的过程。
  • 量化方式:b位表示图像亮度的数值,那么亮度阶就是k=2b

2.3 数字图像性质

2.3.1 数字图像的度量和拓扑序列

  • 距离满足的条件
    1. 同一性:D(p,q)0, p=qD(p,q)=0
    2. 对称性:D(p,q)=D(q,p)
    3. 三角不等式:D(p,r)D(p,q)+D(q,r)
  • 常用的距离度量
    • 欧式距离(Euclidean distance ) : DE[(i,j),(h,k)]=(ih)2+(jk)2
    • 城市街区距离(city block distance):D4[(i,j),(h,k)]=|ih|+|jk|
    • 棋盘距离(chessboard distance):D8[(i,j),(h,k)]=max(|ih|,|j=k|)
  • 像素的邻接性:任意两个像素如果它们之间的距离D4=1称为4-邻接(4-neighbors)的。ScreenClip.png
  • 区域(regions):彼此邻接的像素的重要集合。在集合论中,区域是一个连通集。更具体的说法:如果我们定义从像素P到像素Q的路径为一个点序列A1,A2,An,其中A1=p,An=Q,且Ai+1Ai的邻接点,i=1,2,,n1,那么区域(regions) 是指这样的集合。其中任意两个像素之间都存在着完全属于该集合的路径。
  • 连通(contiguous) 如果两个像素之间存在一条路径,那么这些像素就是连通的。关系是:自反的,对称的,传递的。
  • 假设Ri是“连通”关系产生的不想交的区域,进一步假设这些区域与图像的边界不接触。设区域R是所有这些区域Ri的并集,Rc是区域R的相对于图像的补集合。我们称包含图像边界的RC的连通子集合为背景(background),而称补集合RC的其他部分为孔(holes)。如果区域中没有孔,我们称之为简单连通(simply contigous)区域。等价地,简单连通区域的补集合是连通的。有孔的区域称为复连通(multiple contigous)。
  • 距离变化(distance transform):距离函数(distance function),斜切算法(chamfering algorithm)像素与某个图像子集的距离。所产生的的图像在该子集元素位置处的像素值为0,邻近的像素具有较小的值,而离它远的数值比较大。
  • 局部掩膜(mask)遍历图像
    • 第一遍:从左上角开始,水平从左到右直至图像边界,然后返回到下一行开始出继续。
    • 第二遍:从右下角开始,使用一个不同的局部掩膜,从右至左,从上到下
  • 距离变化算法
    1. 按照一种距离度量D,D是D4D8,对大小为M×N的图像的一个子集S计算距离变化,建立一个M×N的数组F并作初始化:子集S中的元素置为0,其他置为无穷大。
    2. 按行遍历图像,从上到下,从左到右,对于上方和左面的邻接像素。设F(p)=min[F(p),D(p,q)+F(q)]
    3. 按行遍历图像,从下到上,从右到左。对于下方和右面的邻接像素。设F(p)=min[F(p),D(p,q)+F(q)]
    4. 数组F中得到的是子集S的斜切。
  • 准欧式距离(quasi-Euclidean distance):
    (2)DQE[(i,j),(h,k)]={|ih|+(21)|jk||ih|>|jk|(21)|ih|+|jk|
  • 边缘(edge):它是一个像素和其直接邻域的局部性质。它是一个有大小和方向的矢量。边缘计算的对象是具有很多亮度级别的图像。计算边缘的方式是计算函数的梯度。
  • 裂缝边缘(crack edge):在像素间创建了一个结构体,与单元复合(cellular complexes)的结构类似。每个像素有四个裂缝边缘,由其4-邻接关系定义而得,裂缝边缘的方向沿着亮度增大的方向,是90 的倍数。
  • 边界(border):区域R的边界是它自身的一个像素集合,其中的每个点具有一个或多个R外的邻接点。
    • 内部边界
    • 外部边界
  • 区域的凸性:如果区域内的任意两点连成一条直线而这条线完整地位于区域内。
  • 凸包:包含输入区域的一个最小凸区域,其输入区域本身可以是非凸的。
  • 拓扑性质(topological properties):基于距离的概念。橡皮面变换(rubber sheet transformation。

3.2 直方图

  • 亮度直方图(beightness histogram):hf(z)给出图像中亮度值z出现的频率,一幅有L个灰阶的图像的直方图具有L个元素的一位数组表示。
  • 计算亮度直方图
    1. 数组hf的所有元素赋值为0
    2. 对于图像f的所有像素,做hf[f(x,y)]+1
  • 数字图像的直方图一般都有很多的极大值和极小值,这会使进一步处理变的负载。可以通过对直方图进行局部平滑来避免。可以利用相邻直方图元素的局部平均来做。
    • 新的直方图公式为hf(z)=12K+1i=kkhf(z+i)
    • 是一个常量,代表平滑所使用的邻域的大小。
  • 高斯模糊(Gaussian blurring)

3.3 熵

  • 熵H(Entroyp)就可以估计出图像的信息量
  • 信息熵(information entropy):直觉理解与关联于给定概率分布的事件的不确定性大小有关。熵可以作为”失调”的度量,当失调水平上升时,熵就增加而事件就越来越难于预测。
  • 假设离散随机变量X的可能结果是x1,x2,,xn,设P(xk)是出现xk(k=1,2,,n)的概率,熵定义为H(X)=k=1np(xk)log2(1(p(xK))=k=1np(xk)log2p(xk).

3.4 图像的视觉感知

  • 对比度(contract):对比度是亮度的局部变化,定义为物体亮度的平均值与背景亮度的比值。表观上的亮度很大程度上取决于局部背景的亮度,这种现象被称为条件对比度(condition contract)。
  • 敏锐度(acuity):敏锐度是觉察图像细节的能力。人 的眼睛对于图像平面中的亮度的缓慢和快速变化敏感度差一些,而对于其间的中等变化较为敏感。敏锐度也随着光轴的距离增加而降低。

3.5 图像的品质

3.6 图像中的噪声

  • 噪声(noise):实际的图像常受一些随机误差的影响而退化,我们称这种退化为噪声。
    • 白噪声(white noise):理想的噪声,白噪声具有是常量的功率谱,就是噪声在所有的频率上出现且强度相同。
    • 高斯噪声(Gaussion noise):服从高斯(正态)分布的随机 变量具有高斯曲线型的概率密度p(x)=1σ2πe(xμ)22σ2
    • 加性噪声(additive noise):当图像通过信道传输时,噪声一般与出现的图像信号无关。
    • f(x,y)=g(x,y)+v(x,y),噪声v和输入图像g是相互独立的变量
    • 算法:产生加性零均值高斯噪声
      1. 假设图像的灰阶范围是[0,G1]。它的值最小时,相应的噪声也小。
      2. 针对每对水平相邻的像素(x,y),(x,y+1)产生一对位于[0,1]范围的独立的随机数r,ϕ
      3. 计算 z1=σcos(2πϕ)2lnrz2=σsinn(2πϕ)2lnr (Box-Muller变换,假设z1,z2是独立的具有0均值和σ方差的正态分布)。
      4. f(x,y)=g(x,y)+z1f(x,y+1)=g(x,y+1)+z2,其中g是输入图像。
      5. f(x)={0f(x,y)<0G1f(x,y)>G1f(x,y) f(x,y+1)={0f(x,y+1)<0G1f(x,y+1)>G1f(x,y+1)
      6. 跳转到步骤3,直至扫描完所有的像素。
    • 信噪比(SNR):图像品质的一个度量,值大的就是’好’
    • 计算噪声贡献的所有平方和E=(x,y)v2(x,y)
    • 观察的信号的所有平方和F=(x,y)f2(x,y)
    • SNR=FE SNRdb=10log10SNR
    • 乘性噪声(multiplicative noise):f=gv 例子:电视光栅退化,胶片材料退化。
    • 量化噪声(quantization noise): 会在量化级别不足时出现
    • 冲击噪声(inpulsive noise):是指一幅图像被个别噪声像素破坏,这些像素的亮度与其邻域的显著不同
    • 胡椒盐噪声(salt-and pepper noise):是指饱和的冲击噪声,这时图像被一些白的或者黑的像素所破坏。

4 彩色图像

4.1 色彩物理学

ScreenClip.png

  • 表面反射:类似镜子的方式弹回进来的能量。
  • 体反射(baby reflaction):能量扩散进入材料内并随机地从其内部的颜料反射。
  • 分光光度计(spectrophotometer)
  • 多谱图像(multispectral images)

4.2 人所感知的色彩

  • 新的2D坐标x,y按如下方式获得:x=XX+Y+Z,y=YX+Y+Z,z=1xy

    ScreenClip.png

4.3 彩色空间

  • RGB色彩空间:(i,j,k),0i,j,k255
  • RGB与XYZ色彩空间之间的变换 [RGB]=[3.241.540.500.981.880.040.060.201.06][XYZ][XYZ]=[0.410.360.180.210.720.070.020.120.95][RGB]

未完待续。。。。。。

2017-05-04 16:30:54 u012150360 阅读数 1973

图像的打开:

import cv2

filename = "/home/vickyleexy/PycharmProjects/33.jpg"
img = cv2.imread(filename)
print type(img),img.shape,img.dtype
cv2.namedWindow("xiamu")
cv2.imshow("xiamu",img)
cv2.waitKey(0)
cv2.destroyAllWindows() #销毁窗口

使用opencv打开图像时报错:
error: /io/opencv/modules/highgui/src/window.cpp:565: error: (-2) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvNamedWindow

但检查发现gtk什么的已经安装了……
解决方法:
sudo apt-get install python-opencv
同时卸载之前安装的opencv-python
sudo pip uninstall opencv-python

opencv安装:
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

没有更多推荐了,返回首页