图像的灰度变换及代数运算

合集下载

图像灰度变换原理

图像灰度变换原理

图像灰度变换原理
图像灰度变换原理是指通过对图像的像素点进行灰度值的变换,从而改变图像的亮度和对比度。

灰度变换可以通过增加或减少像素值来改变图像的灰度级,并根据需求来调整图像的亮度和对比度。

灰度变换可以用以下数学公式表示:
g(x, y) = T(f(x, y))
其中,f(x, y)表示输入图像的灰度级,g(x, y)表示输出图像的
灰度级,T表示灰度变换函数。

常见的灰度变换函数有线性变换、非线性变换和直方图均衡化等。

线性灰度变换函数是最简单的一种灰度变换方式,通过对输入图像的每一个像素点应用一个线性方程来实现灰度的线性变换。

线性变换可以改变图像的对比度和亮度。

常见的线性灰度变换函数有平方根变换、指数变换和对数变换等。

非线性灰度变换函数则是通过对输入图像的每一个像素点应用一个非线性方程来实现灰度的非线性变换。

非线性变换可以实现更加复杂的灰度调整,例如增强图像的细节或者减少图像的噪声。

常见的非线性灰度变换函数有伽马变换和分段线性变换等。

直方图均衡化是一种特殊的灰度变换方法,通过对输入图像的
灰度级进行重新分配,使得输出图像的灰度级分布更加均匀。

直方图均衡化可以提高图像的对比度,使得图像的细节更加清晰。

总的来说,图像灰度变换原理是通过对图像的像素点进行灰度值的变换,来改变图像的亮度和对比度。

不同的灰度变换函数可以实现不同的灰度调整效果,根据需求选择合适的灰度变换方法可以获得满足要求的图像效果。

数字灰度图像的基本运算处理 正文讲解

数字灰度图像的基本运算处理 正文讲解

1前言介绍一种用可视化数值计算软件MATLAB实现的数字图像处理系统平台,系统使用MATLAB中提供的GUI设计系统可视化的用户界面,下拉式的菜单方便用户选择对图像的处理。

用户可以随意选择要处理的图片。

但是该系统只支持灰度图片,可实现内容主要包括灰度图像的代数运算、几何运算。

基于数字图像处理的一些基本原理,利用MATLAB 设计程序进行对灰度图像的处理。

有部分处理运算有很多种方法,我选择了最简单、最明了的方法。

数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。

理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。

二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。

随着计算机的发展,图像处理技术在许多领域得到了广泛应用,用于图像处理的软件也很多,如PHOTOSHOP、PAINTSHOP、GIMP、SaperaProcessing、MATLAB等,其中大部分软件都是基于广告策划和图像修饰处理而设计的应用软件,进行图像处理时并不是很方便。

而MATLAB(矩阵实验室) 它在矩阵运算上有自己独特的特点,在矩阵运算处理具有很大的优势,因此用MATLAB处理数字图像非常的方便。

不仅如此,MATLAB提供了丰富的图形命令和图形函数,而且其面向对象的图形系统具有强大的用户界面(GUI)生成能力。

这样,用户就可以充分利用系统提供的 GUI 特性,编写自己需要的图形界面,从而可以高效地进行图像处理。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。

图像灰度变换实验报告

图像灰度变换实验报告

实验2a 图像的灰度变换一、实验目的:学会用Matlab软件对图像进行运算和灰度变换。

二、实验内容:用+、-、*、/、imabsdiff、imadd、imcomplment、imdivide、imlincomb、immultiply、imsubtract和imadjust等函数生成各类灰度变换图像。

三、实验相关知识1、代数运算两幅图像之间进行点对点的加、减、乘、除运算后得到输出图像。

我们可以分别使用MA TLAB的基本算术符+、-、*、/来执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型(命令函数为double())。

为了更方便对图像进行操作,图像处理工具箱中也包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

如下所示:imabsdiff:计算两幅图像的绝对差值imadd:两个图像的加法imcomplment:一个图像的补imdivide:两个图像的除法imlincomb:计算两幅图像的线性组合immultiply:两个图像的乘法imsubtract:两个图像的减法使用图像处理工具箱中的图像代数运算函数无需再进行数据类型间的转换,这些函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

代数运算的结果很容易超出数据类型允许的范围。

图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

2、灰度变换点运算也称为灰度变换,是一种通过对图像中的每个像素值进行运算,从而改善图像显示效果的操作。

对于特定变换函数f的灰度变换,用户可以利用MATLAB强大的矩阵运算能力,对图像数据矩阵调用各种MATLAB计算函数进行处理。

需要注意的是由于MATLAB不支持uint8类型数据的矩阵运算,所以首先要将图像数据转换为双精度类型,计算完成后再将其转换为uint8类型(命令为uint8( ))。

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解

Python图像运算之图像灰度线性变换详解⽬录⼀.灰度线性变换⼆.图像灰度上移变换三.图像对⽐度增强变换四.图像对⽐度减弱变换五.图像灰度反⾊变换六.总结⼀.灰度线性变换图像的灰度线性变换是通过建⽴灰度映射来调整原始图像的灰度,从⽽改善图像的质量,凸显图像的细节,提⾼图像的对⽐度。

灰度线性变换的计算公式如(12-1)所⽰:该公式中DB表⽰灰度线性变换后的灰度值,DA表⽰变换前输⼊图像的灰度值,α和b为线性变换⽅程f(D)的参数,分别表⽰斜率和截距[1-4]。

当α=1,b=0时,保持原始图像当α=1,b!=0时,图像所有的灰度值上移或下移当α=-1,b=255时,原始图像的灰度值反转当α>1时,输出图像的对⽐度增强当0<α<1时,输出图像的对⽐度减⼩当α<0时,原始图像暗区域变亮,亮区域变暗,图像求补如图12-1所⽰,显⽰了图像的灰度线性变换对应的效果图。

⼆.图像灰度上移变换该算法将实现图像灰度值的上移,从⽽提升图像的亮度。

DB=DA+50具体实现代码如下所⽰。

由于图像的灰度值位于0⾄255区间之内,所以需要对灰度值进⾏溢出判断。

# -*- coding: utf-8 -*-# By:Eastmountimport cv2import numpy as npimport matplotlib.pyplot as plt#读取原始图像img = cv2.imread('luo.png')#图像灰度转换grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#获取图像⾼度和宽度height = grayImage.shape[0]width = grayImage.shape[1]#创建⼀幅图像result = np.zeros((height, width), np.uint8)#图像灰度上移变换 DB=DA+50for i in range(height):for j in range(width):if (int(grayImage[i,j]+50) > 255):gray = 255else:gray = int(grayImage[i,j]+50)result[i,j] = np.uint8(gray)#显⽰图像cv2.imshow("Gray Image", grayImage)cv2.imshow("Result", result)#等待显⽰cv2.waitKey(0)cv2.destroyAllWindows()其输出结果如图12-2所⽰,图像的所有灰度值上移50,图像变得更⽩了。

数字图像处理-图像基本运算

数字图像处理-图像基本运算

数字图像处理_图像基本运算图像基本运算1点运算线性点运算是指输⼊图像的灰度级与输出图像呈线性关系。

s=ar+b(r为输⼊灰度值,s为相应点的输出灰度值)。

当a=1,b=0时,新图像与原图像相同;当a=1,b≠0时,新图像是原图像所有像素的灰度值上移或下移,是整个图像在显⽰时更亮或更暗;当a>1时,新图像对⽐度增加;当a<1时,新图像对⽐度降低;当a<0时,暗区域将变亮,亮区域将变暗,点运算完成了图像求补; ⾮线性点运算是指输⼊与输出为⾮线性关系,常见的⾮线性灰度变换为对数变换和幂次变换,对数变换⼀般形式为:s=clog(1+r)其中c为⼀常数,并假设r≥0.此变换使窄带低灰度输⼊图像映射为宽带输出值,相对的是输出灰度的⾼调整。

1 x=imread('D:/picture/DiaoChan.jpg');2 subplot(2,2,1)3 imshow(x);4 title('原图');5 J=0.3*x+50/255;6 subplot(2,2,2);7 imshow(J);8 title('线性点变换');9 subplot(2,2,3);10 x1=im2double(x);11 H=2*log(1+x1);12 imshow(H)13 title('⾮线性点运算');%对数运算幂次变换⼀般形式:s=cr^γ幂级数γ部分值把窄带暗值映射到宽带输出值下⾯是⾮线性点运算的幂运算1 I=imread('D:/picture/DiaoChan.jpg');2 subplot(2,2,1);3 imshow(I);title('原始图像','fontsize',9);4 subplot(2,2,2);5 imshow(imadjust(I,[],[],0.5));title('Gamma=0.5');7 imshow(imadjust(I,[],[],1));title('Gamma=1');8 subplot(2,2,4);9 imshow(imadjust(I,[],[],1.5));title('Gamma=1.5');2代数运算和逻辑运算加法运算去噪处理1 clear all2 i=imread('lenagray.jpg');3 imshow(i)4 j=imnoise(i,'gaussian',0,0.05);5 [m,n]=size(i);6 k=zeros(m,n);7for l=1:1008 j=imnoise(i,'gaussian',0,0.05);9 j1=im2double(j);10 k=k+j1;11 End12 k=k/100;13 subplot(1,3,1),imshow(i),title('原始图像')14 subplot(1,3,2),imshow(j),title('加噪图像')15 subplot(1,3,3),imshow(k),title(‘求平均后的减法运算提取噪声1 I=imread(‘lena.jpg’);2 J=imnoise (I,‘lena.jpg’,0,0.02);3 K=imsubtract(J,I);4 K1=255-K;5 figure;imshow(I);7 figure;imshow(K1);乘法运算改变图像灰度级1 I=imread('D:/picture/SunShangXiang.jpg')2 I=im2double(I);3 J=immultiply(I,1.2);4 K=immultiply(I,2);5 subplot(1,3,1),imshow(I);subplot(1,3,2),imshow(J);6 subplot(1,3,3);imshow(K);逻辑运算1 A=zeros(128);2 A(40:67,60:100)=1;3 figure(1)4 imshow(A);5 B=zeros(128);6 B(50:80,40:70)=1;7 figure(2)8 imshow(2);9 C=and(A,B);%与10 figure(3);11 imshow(3);12 D=or(A,B);%或13 figure(4);14 imshow(4);15 E=not(A);%⾮16 figure(5);17 imshow(E);3⼏何运算平移运算实现图像的平移1 I=imread('lenagray.jpg');2 subplot(1,2,1);3 imshow(I);4 [M,N]=size(I);g=zeros(M,N);5 a=20;b=20;6for i=1:M7for j=1:N8if((i-a>0)&(i-a<M)&(j-b>0)&(j-b<N)) 9 g(i,j)=I(i-a,j-b);10else11 g(i,j)=0;12 end13 end14 end15 subplot(1,2,2);imshow(uint8(g));⽔平镜像变换1 I=imread('lena.jpg');2 subplot(121);imshow(I);3 [M,N]=size(I);g=zeros(M,N);4for i=1:M5for j=1:N6 g(i,j)=I(i,N-j+1);7 end8 end9 subplot(122);imshow(uint8(g));垂直镜像变换1 I=imread('lena.jpg');2 subplot(121);imshow(I);3 [M,N]=size(I);g=zeros(M,N);4for i=1:M5for j=1:N6 g(i,j)=I(M-i+1,j);7 end8 end9 subplot(122);imshow(uint8(g));图像的旋转1 x=imread('D:/picture/DiaoChan.jpg');2 imshow(x);3 j=imrotate(x,45,'bilinear');4 k=imrotate(x,45,'bilinear','crop');5 subplot(1,3,1),imshow(x);6 title(‘原图')7 subplot(1,3,2),imshow(j);8 title(‘旋转图(显⽰全部)')9 subplot(1,3,3),imshow(k);10 title(‘旋转图(截取局部)')⼏种插值法⽐较1 i=imread('lena.jpg');2 j1=imresize(i,10,'nearest');3 j2=imresize(i,10,'bilinear');4 j3=imresize(i,10,'bicubic');5 subplot(1,4,1),imshow(i);title(‘原始图像')6 subplot(1,4,2),imshow(j1);title(‘最近邻法')7 subplot(1,4,3),imshow(j2);title(‘双线性插值法')8 subplot(1,4,4),imshow(j3);title(‘三次内插法')放缩变换1 x=imread('D:/picture/ZiXia.jpg')2 subplot(2,3,1)3 imshow(x);4 title('原图');5 Large=imresize(x,1.5);6 subplot(2,3,2)7 imshow(Large);8 title('扩⼤为1.5');9 Small=imresize(x,0.1);10 subplot(2,3,3)11 imshow(Small);12 title('缩⼩为0.3');13 subplot(2,3,4)14 df=imresize(x,[600700],'nearest');15 imshow(df)16 title('600*700');17 df1=imresize(x,[300400],'nearest');18 subplot(2,3,5)19 imshow(df1)20 title('300*400');后记:(1)MATLAB基础知识回顾1:crtl+R是对选中的区域注释,ctrl+T是取消注释2:有的代码中点运算如O=a.*I+b/255 ,其中b除以255原因是:灰度数据有两种表式⽅法:⼀种是⽤unit8类型,取值0~255;另⼀种是double类型,取值0~1。

1_代数运算可以分为哪几类,各有什么意义?

1_代数运算可以分为哪几类,各有什么意义?

1_代数运算可以分为哪⼏类,各有什么意义?
代数运算可以分为哪⼏类,各有什么意义?
代数运算可以分为对两幅或两幅以上输⼊图像的加、减、乘、除运算四⼤类
加法运算通常⽤于平均值降噪等多种场合。

图像相加⼀般⽤于同⼀场景的多幅图像求平均,以便有效降低加性噪声。

减法运算常⽤于检测变化及运动的物体,图像减法运算⼜称为图像差分运算。

在可控环境下,或者在很短的时间内,可以认为背景是固定不变的,可以直接使⽤差分运算检测变化或者运动的物体。

简单的乘法运算,可以⽤来改变图像的灰度级,实现灰度级变换。

乘法运算也可以⽤来遮住图像的某些部分,其典型应⽤是⽤于获得掩模图像。

对于要保留下来的区域,掩模图像的值置为1,⽽在需要被抑制掉的区域,掩模图像的值置为0。

此外,由于时间域的卷积和相关运算与频率域的乘积运算对应,所以乘法运算有时也被⽤来作为⼀种技巧来实现卷积和相关处理。

简单的除法运算可⽤于改变图像的灰度级。

除法运算的典型运⽤是⽐值图像处理。

例如,除法运算可以⽤于校正成像设备的⾮线性影响,在特殊形态的图像(如以CT为代表的医学图像)处理中被⽤到。

此外,除法运算还经常⽤于消除图像数字化设备随空间所产⽣的影响。

图像处理技术中的灰度变换算法解析

图像处理技术中的灰度变换算法解析

图像处理技术中的灰度变换算法解析图像处理技术在如今的数字时代扮演着至关重要的角色。

从电视和电影制作到医学图像分析,图像处理技术已经成为了各行各业的关键技术。

其中一个重要的图像处理技术就是灰度变换算法,它被广泛应用于图像增强、对比度调整和直方图均衡化等领域。

灰度变换算法是一种将输入图像的灰度级转换为不同灰度级的过程。

它的核心思想是通过映射函数来改变图像中各个像素点的灰度级别。

下面我们将介绍几种常见的灰度变换算法。

线性变换是最简单的灰度变换算法之一。

它通过线性映射函数来实现灰度级的变换。

具体来说,线性变换将输入图像中的每个像素点,根据灰度级的线性变化关系进行映射。

这种算法的一个常见应用是对比度增强,通过扩展原始图像的灰度范围,使得图像更加锐利和清晰。

伽玛变换是另一种常见的灰度变换算法。

它通过非线性映射函数来改变图像的对比度。

与线性变换不同的是,伽玛变换在不同的灰度级别上应用不同的指数函数。

这种算法通常用于对高动态范围图像进行处理,以提高细节的可见性。

例如,在医学图像处理中,通过使用伽玛变换可以突出显示微弱的病灶。

直方图均衡化是一种常见的增强图像对比度的灰度变换算法。

直方图均衡化的目标是使原始图像的灰度级分布更加均匀。

它通过重新分布图像的灰度级来增强图像的对比度。

具体来说,直方图均衡化通过计算原始图像的累积分布函数,然后将其映射到均匀分布函数来实现。

这种算法常用于改善图像细节和增强图像中的低对比度区域。

除了上述算法,还有其他一些特殊的灰度变换算法。

例如,阈值变换算法可以将图像二值化,将像素的灰度级变为只有两个值的二值图像。

这种算法在物体检测和分割中被广泛应用。

反转变换算法可以颠倒图像的亮度级别,使图像的深色变为浅色,浅色变为深色。

在实际应用中,选择合适的灰度变换算法非常重要。

要根据具体的应用需求和图像特征来选择最合适的算法。

同时,还可以使用组合灰度变换算法来实现更加复杂的图像处理效果。

无论是简单的线性变换还是复杂的直方图均衡化,灰度变换算法都为图像处理和分析提供了强大的工具。

数字逻辑 灰度变换

数字逻辑 灰度变换

数字逻辑灰度变换数字逻辑中的灰度变换数字逻辑是计算机科学中的一个重要分支,它涉及到数字电路、逻辑门、布尔代数等知识。

在数字逻辑中,灰度变换是一种常见的图像处理方法,用于调整图像的亮度和对比度,使图像更加清晰和易于观察。

灰度变换是将图像中的像素值进行线性或非线性变换,从而改变图像的亮度和对比度。

在数字图像处理中,通常将灰度值定义为0到255之间的整数,其中0表示黑色,255表示白色。

灰度变换可以用以下公式表示:g(x,y) = T[f(x,y)]其中,f(x,y)表示原始图像中像素点的灰度值,g(x,y)表示变换后的灰度值,T是变换函数。

灰度变换的常见类型包括线性变换、对数变换、伽马变换等。

线性变换是最基本、最常见的灰度变换,它将原始图像中的灰度值映射到一个新的灰度级范围中,常用的线性变换有拉伸变换、压缩变换、反转变换等。

对数变换是一种非线性变换,它能够将图像中亮度较低的区域放大,以便更好地观察图像中的细节。

对数变换的公式为:g(x,y) = c × log[1 + f(x,y)]其中,c是常数,f(x,y)表示原始图像中像素点的灰度值。

伽马变换也是一种非线性变换,它能够增强图像中的对比度和细节,并且可以根据需求进行调整。

伽马变换的公式为:g(x,y) = A × f(x,y)^γ其中,A和γ是常数,f(x,y)表示原始图像中像素点的灰度值。

除了上述常见的灰度变换类型之外,还有一些特殊的灰度变换,如直方图均衡化、直方图匹配等。

直方图均衡化是一种可以提高图像对比度和亮度的方法,它能够使图像中的灰度级分布更加均匀。

直方图匹配是一种将图像的灰度级映射到一个指定的灰度范围的方法,以便更好地观察和分析图像。

总的来说,灰度变换是数字图像处理中的一项基本技术,它能够改善图像的质量,并且可以根据需求进行调整。

在实际应用中,我们需要根据具体的需求选择合适的灰度变换方法,并且需要进行参数调整和优化,以确保处理效果最佳。

灰度变换算法原理

灰度变换算法原理

灰度变换算法原理
灰度变换是一种将图像的灰度级进行适当调整的方法,可以改善图像的对比度和亮度。

灰度变换的基本原理是将输入图像的每个像素点的灰度级通过某种函数进行映射转换,并得到输出图像的像素灰度级。

常用的灰度变换函数有线性变换、非线性变换和直方图均衡化等。

1. 线性变换:
线性变换是灰度变换中最简单的一种方法。

它通过一个线性函数将输入图像的灰度级映射到输出图像的灰度级。

线性变换的数学表达式为:
g(x,y) = a*f(x,y) + b
其中,g(x,y)为输出图像的像素灰度级,f(x,y)为输入图像的像素灰度级,a和b为常数。

2. 非线性变换:
非线性变换是通过非线性函数将输入图像的灰度级映射到输出图像的灰度级。

非线性变换可以对输入图像的不同灰度级进行不同的映射处理,从而调整图像的对比度和亮度。

常用的非线性变换函数有幂次变换、对数变换和指数变换等。

3. 直方图均衡化:
直方图均衡化是一种通过对输入图像的直方图进行变换,从而使得输出图像具有更均匀的灰度分布的方法。

通过直方图均衡化,可以增强图像的对比度,使得图像中细节更加清晰。

直方图均衡化的基本原理是将输入图像的累计分布函数映射到均匀
分布,使得输出图像的直方图近似均匀。

总结起来,灰度变换算法原理是通过对输入图像的灰度级进行适当调整,使用线性变换、非线性变换,或者直方图均衡化等方法,从而改变输出图像的灰度级,达到调整图像对比度和亮度的目的。

图像灰度变换、二值化、直方图

图像灰度变换、二值化、直方图

图像灰度变换、⼆值化、直⽅图1、灰度变换1)灰度图的线性变换Gnew = Fa * Gold + Fb。

Fa为斜线的斜率,Fb为y轴上的截距。

Fa>1 输出图像的对⽐度变⼤,否则变⼩。

Fa=1 Fb≠0时,图像的灰度上移或下移,效果为图像变亮或变暗。

Fa=-1,Fb=255时,发⽣图像反转。

注意:线性变换会出现亮度饱和⽽丢失细节。

2)对数变换t=c * log(1+s)c为变换尺度,s为源灰度,t为变换后的灰度。

对数变换⾃变量低时曲线斜率⾼,⾃变量⼤时斜率⼩。

所以会放⼤图像较暗的部分,压缩较亮的部分。

3)伽马变换y=(x+esp)γ,x与y的范围是[0,1], esp为补偿系数,γ为伽马系数。

当伽马系数⼤于1时,图像⾼灰度区域得到增强。

当伽马系数⼩于1时,图像低灰度区域得到增强。

当伽马系数等于1时,图像线性变换。

4)图像取反⽅法1:直接取反imgPath = 'E:\opencv_pic\src_pic\pic2.bmp';img1 = imread(imgPath); % 前景图img0 = 255-img1; % 取反景图subplot(1,2,1),imshow(img1),title('原始图像');subplot(1,2,2),imshow(img0),title('取反图像');⽅法2:伽马变换Matlab:imadjust(f, [low_in, high_in], [low_out, high_out], gamma)[low_in, high_in]范围内的数据映射到 [low_out, high_out],低于low的映射到low_out, ⾼于high的映射到high_out. imgPath = 'E:\opencv_pic\src_pic\pic2.bmp';img1 = imread(imgPath); % 前景图img0 = imadjust(img1, [0,1], [1,0]);subplot(1,2,1),imshow(img1),title('原始图像');subplot(1,2,2),imshow(img0),title('取反图像');2、⼆值化1)rgb2gray⼀般保存的灰度图是24位的灰度,如果改为8bit灰度图。

图像处理基本运算

图像处理基本运算
加暗、减亮图像
3.2.2非线性点运算Non-Linear Point Operation
加暗、减亮图像
Matlab非线性点运算
cameraman.jpg
fx=x+0.006x255-x
• a=imread 'cameraman.jpg'; • figure 1 ; imshow a; • xlabel 'a 原始图像 '; • x=1:255; • y=x+x.255-x/255;
反射
电脉冲
视网膜图 像
中央凹
人脑判读
2、亮度适应和区分
3、错视现象
马赫带效应
同时对比度
一般来说,当限定数 字图像的大小时,为了得 到质量较好的图像,可采 用如下原则:
● 对细节丰富的图像: 应细采样,粗量化,以避免 模糊混叠. ● 对缓变的图像: 应细量化,粗采样,以避 免假轮廓.
4、图像的读取、数据调用和显示
2、对图像灰度的拉伸,非线性拉伸与分段线性拉伸的区别
非线性拉伸不是通过在不同灰度值区间选择不同的线 性方程来实现对不同灰度值区间的扩展与压缩,而是在整 个灰度值范围内采用统一的非线性变换函数,利用函数的 数学性质实现对不同灰度值区间的扩展与压缩.
二、代数运算
代数运算是指两幅输入图像之间进行点 对点的加、减、乘、除运算得到输出图像的 过程.如果记输入图像为Ax,y和Bx,y,输出图 像为Cx,y,则有如下四种形式:
=
-
gx,y
T2x,y
T1x,y
图像相减—运动检测
左上: 某序列图像的第100帧; 下:某序列图像的第300帧; 右上: 两幅图像相减并取绝 对值显示的结果
图像减法应用举例

图像的基本运算

图像的基本运算

图像的基本运算图像的基本运算包括以下几类:图像的点运算;图像的代数运算;图像的几何运算;图像的逻辑运算和图像的插值。

下面将依次介绍这几种运算。

一、点运算点运算是指对一幅图像中每个像素点的灰度值进行计算的方法。

点运算通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。

这是一种像素的逐点运算,是原始图像与目标图像之间的映射关系,不改变图像像素的空间关系。

可以提高图像的对比度,增加轮廓线等。

可分为:(1)线性点运算:输出灰度级与输入灰度级之间呈线性关系。

(2)非线性点运算:输出灰度级与输入灰度级之间呈非线性关系。

二、代数运算代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法。

对于相加和相乘的情形,可能不止有两幅图像参加运算。

如果记A(x,y)和B(x,y)为输入图像,C(x,y)为输出图像。

那么,四种代数运算的数学表达式如下:(1)C(x,y)=A(x,y)+B(x,y)加法运算可以实现以下两个目的:1.1去除叠加性随机噪声;1.2生成图像叠加效果。

(2)C(x,y)=A(x,y)-B(x,y)减法运算可以实现以下两个目的:2.1消除背景影响;2.2检查同一场景两幅图像之间的变化。

(3)C(x,y)=A(x,y)*B(x,y)乘法运算可以实现以下两个目的:3.1图像的局部显示;3.2图像的局部增强。

(4)C(x,y)=A(x,y)/B(x,y)乘法运算可以实现以下三个目的:4.1遥感图像的处理中;4.2消除图像数字化设备随空间变化的影响。

4.3校正成像设备的非线性影响。

还可以通过适当的组合形成涉及几幅图像的复合代数运算。

三、几何运算几何运算就是改变图像中物体对象(像素)之间的空间关系。

从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)以及图像的复合变换等。

第三讲 图象基本运算与灰度映射变换

第三讲 图象基本运算与灰度映射变换

3.4 直方图图像增强
3.5 直方图均衡化
直方图均衡方法的基本思想是对在 图像中像素个数多的灰度级进行展 宽,而对像素个数少的灰度级进行 缩减。从而达到清晰图像的目的。
Example_histeq.m
直方图均衡化基本算法
设有Kbit图像f做直方图均衡化后得 到图像g。以下以k=8为例说明 1) 求出原图f的灰度直方图,设为h。 k h为一个2 维的向量。
2013-8-4
华中科技大学软件学院
14
3.2灰度变换
什么是灰度变换 将一个灰度区间映射到另一个灰度区间的变换称为灰度变换。 灰度变换的目的 灰度变换可使图像动态范围加大,图像对比度扩展,图像清晰, 特征明显,是图像增强的重要手段。 基本直接灰度变换 1. 2. 3. 4. 图像反转(negative_enhance.m) 增强对比度(contrast_strentching.m) 压缩动态范围压缩 灰度切片
线性插值:
f(0,0)
(0,0)
(0,0.4)
(0,1)
8/4/2013
华中科技大学软件学院
双线性插值的简单算法
8/4/2013
华中科技大学软件学院
3.2基于灰度变换的图像增强
基于点操作的增强变换,常见的有几类方法:
① 将f(.)中的象素按EH操作直接变换以得到 g(.); ② 借助f(.)的直方图进行变换; ③ 借助对一系列图像间的操作进行变换。
rk sk
使 |
p ( j ) p (i) |
j 0 r i 0 s
最小。
直方图均衡化
2
3
1
6
3
0
7
6
3
4
6

OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

OpenCV计算机视觉学习(3)——图像灰度线性变换与非线性变换(对数变换,伽马变换)

OpenCV计算机视觉学习(3)——图像灰度线性变换与⾮线性变换(对数变换,伽马变换)如果需要处理的原图及代码,请移步⼩编的GitHub地址 传送门: 下⾯主要学习图像灰度化的知识,结合OpenCV调⽤ cv2.cvtColor()函数实现图像灰度化,使⽤像素处理⽅法对图像进⾏灰度化处理。

1. 图像灰度化1.1 图像灰度化的⽬的 将彩⾊图像转化为灰度图像的过程是图像的灰度化过程。

彩⾊图像中的每个像素的颜⾊由 R, G, B三个分量决定,⽽每个分量中可以取值 0~255,这样⼀个像素点可以有 1600多万(255*255*255=16581375)的颜⾊的变化范围。

⽽灰度图像是 R,G,B三个分量相同的⼀种特殊的彩⾊图像,其中⼀个像素点的变换范围为 256 种,所以在数字图像处理中⼀般将各种格式的图像转换为灰度图像以使后续的图像计算量少⼀些。

灰度图像的描述与彩⾊图像⼀样仍然反映了整幅图像的整体和局部的⾊度和⾼亮等级的分布和特征。

1.2 图像灰度化原理 图像灰度化是将⼀幅彩⾊图像转换为灰度化图像的过程。

彩⾊图像通常包括R、G、B三个分量,分别显⽰出红绿蓝等各种颜⾊,灰度化就是使彩⾊图像的R、G、B三个分量相等的过程。

灰度图像中每个像素仅具有⼀种样本颜⾊,其灰度是位于⿊⾊与⽩⾊之间的多级⾊彩深度,灰度值⼤的像素点⽐较亮,反之⽐较暗,像素值最⼤为255(表⽰⽩⾊),像素值最⼩为0(表⽰⿊⾊)。

图像灰度化核⼼思想是 R = G = B ,这个值也叫灰度值。

上表中Gray表⽰灰度处理之后的颜⾊,然后将原始RGB(R,G,B)颜⾊均匀地替换成新颜⾊RGB(Gray,Gray,Gray),从⽽将彩⾊图⽚转化为灰度图像。

⼀种常见的⽅法是加权平均灰度处理,这种效果是最好的。

是将RGB三个分量求和再取平均值,但更为准确的⽅法是设置不同的权重,将RGB分量按不同的⽐例进⾏灰度划分。

⽐如⼈类的眼睛感官蓝⾊的敏感度最低,敏感最⾼的是绿⾊,因此将RGB按照0.299、0.587、0.114⽐例加权平均能得到较合理的灰度图像,如公式所⽰:1.3 图像灰度化的三种⽅法1.3.1 OpenCV直接灰度化 下⾯的这种⽅法,在读取图⽚的时候,直接将图⽚转化为灰度化:import cv2img = cv2.imread(photo_file, cv2.IMREAD_GRAYSCALE) 得到的img是⼀个函数。

图像的基本运算

图像的基本运算

图像的基本运算图像的基本运算包括以下几类:图像的点运算;图像的代数运算;图像的几何运算;图像的逻辑运算和图像的插值。

下面将依次介绍这几种运算。

一、点运算点运算是指对一幅图像中每个像素点的灰度值进行计算的方法。

点运算通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。

这是一种像素的逐点运算,是原始图像与目标图像之间的映射关系,不改变图像像素的空间关系。

可以提高图像的对比度,增加轮廓线等。

可分为:(1)线性点运算:输出灰度级与输入灰度级之间呈线性关系。

(2)非线性点运算:输出灰度级与输入灰度级之间呈非线性关系。

二、代数运算代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法。

对于相加和相乘的情形,可能不止有两幅图像参加运算。

如果记A(x,y)和B(x,y)为输入图像,C(x,y)为输出图像。

那么,四种代数运算的数学表达式如下:(1) C(x,y)=A(x,y)+B(x,y)加法运算可以实现以下两个目的:1.1去除叠加性随机噪声;1.2生成图像叠加效果。

(2) C(x,y)=A(x,y)-B(x,y)减法运算可以实现以下两个目的:2.1消除背景影响;2.2检查同一场景两幅图像之间的变化。

(3) C(x,y)=A(x,y)*B(x,y)乘法运算可以实现以下两个目的:3.1图像的局部显示;3.2图像的局部增强。

(4) C(x,y)=A(x,y)/B(x,y)乘法运算可以实现以下三个目的:4.1遥感图像的处理中;4.2消除图像数字化设备随空间变化的影响。

4.3校正成像设备的非线性影响。

还可以通过适当的组合形成涉及几幅图像的复合代数运算。

三、几何运算几何运算就是改变图像中物体对象(像素)之间的空间关系。

从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)以及图像的复合变换等。

灰度变换的实现原理及应用

灰度变换的实现原理及应用

灰度变换的实现原理及应用1. 灰度变换的概述灰度变换是一种图像处理技术,用于改变图像的亮度和对比度。

通过对图像中的每个像素进行数学变换,可以改变像素的亮度级别,并使得整个图像的灰度分布发生变化。

灰度变换通常用于增强图像的细节,调整图像的亮度和对比度,以及实现特定的视觉效果。

2. 灰度变换的实现原理灰度变换的实现原理基于对图像的像素进行数学运算。

常见的灰度变换公式如下:•线性变换:$g(x, y) = \\alpha * f(x, y) + \\beta$,其中f(x,y)表示原始图像的灰度值,g(x,y)表示变换后的灰度值,$\\alpha$ 和 $\\beta$ 是常数。

•幂律变换:$g(x, y) = c * f(x, y)^{\\gamma}$,其中c和$\\gamma$ 是常数,f(x,y)表示原始图像的灰度值,g(x,y)表示变换后的灰度值。

•对数变换:$g(x, y) = c * \\log(1 + f(x, y))$,其中c是常数,f(x,y)表示原始图像的灰度值,g(x,y)表示变换后的灰度值。

灰度变换的核心思想是通过对原始图像的灰度值进行数学运算,改变图像的亮度和对比度。

不同的变换公式可以实现不同的效果,例如加强图像的亮度和对比度、调整图像的色调和饱和度等。

3. 灰度变换的应用灰度变换在图像处理中有广泛的应用,包括但不限于以下方面:3.1 图像增强灰度变换可以用于增强图像的细节和对比度,改善图像的视觉效果。

通过合理地选择灰度变换的参数,可以使得图像中的细节更加清晰,色彩更加丰富。

3.2 图像去噪灰度变换可以用于图像去噪。

通过对图像的灰度值进行变换,可以减小图像中的噪声,并改善图像的质量。

常见的去噪方法包括中值滤波、均值滤波等。

3.3 图像分割灰度变换可以用于图像分割。

通过对图像的灰度值进行变换,可以将图像中的不同区域分割出来,方便进行进一步的分析和处理。

3.4 图像匹配灰度变换可以用于图像匹配。

图像的灰度变换

图像的灰度变换
f(D)称为灰度变换函数, 它描述了输入灰度值和输出灰度值之间的转
换关系。一旦灰度变换函数确定,该点应 算就完全被确定下来了。
直接灰度变换
直接灰度变换属于所有图像增强技术中最简 单的一类,最常用的方法有以下几种: •图像求反 •对数变换 •灰度切割 •位图切割 •灰度的线性变换
图像求反
简单来说,图像求反就是使图像中的黑变白, 和使图像中的白变黑的处理。 设灰度范围为(0,L-1) 图像求反的变换公式:t=L-1-s 这种方法尤其适用于增强嵌入图像的暗区域 的白色和灰色细节
值上移或下移 • 当a<0,就会将图像的暗区域变亮,亮区域
变暗 • 当a=1,b=0,图像会保持不变 • 当a=-1,b=225,图像正好反转
灰度直方图
• 灰度直方图是数字图像处理中一个最简单、 最有用的的工具,它描述了一幅图像的灰 度级内容。
• 灰度直方图定义为灰度值的函数,描述的 是图像中具有该灰度值的像素的个数,其 横坐标表示像素的灰度级别,纵坐标是该 灰度出现的频率。
• 将图像中的所有点的灰度按照线性灰度变 换函数进行变换,变换函数为:
• DB=f(DA)=a*DA+b • 其中a为线性斜率,b为在y轴的截距,
DA为输入图像的灰度值,DB为输出图像 的灰度
讨论下线性变换公式
• 当a>1时,输出的图像的对比度增加 • 当a<1时,输出的图像的对比度就会减小 • 当a=1,b≠0时,就会使所有的图像的灰度
图像的位图切割
• 对一幅有多个位表示其灰度值的图像来说, 其中的每个位可看作一个二值的平面,也 称为位面。设图像中每一个像素由8位表示, 也就是说图像有8个位面,一般用位面0表 示最低位面,位面7表示最高位面,借助图 像的位面表示形式,通过操作图像特定位 面来达到对图像的增强效果。

图像的基本运算(数字图像处理)

图像的基本运算(数字图像处理)
• 逻辑或运算
g(x, y) = f(x, y) | h(x, y) 应用1:图像的合并
应用2:模板运算,提前感兴趣的图像区域
15
图像逻辑运算(Logical operations)
• 逻辑异或运算
g(x, y) = f(x, y) ⊕ h(x, y) 应用1:获得相交图像
16
图像几何运算(Geometric operations)
将给定的图像在 x 方向和 y 方向按相同的比例 a 缩放,从而得到一幅新的图像。
缩放前后的两点 A0(x0, y0)、A1(x1, y1)之间的关系为
x1
aபைடு நூலகம்0 0x 0
y
1


0
a
0
y
0


1
0
0
1

1
x1 ax0 y1 ay 0
• 图像的旋转
图像旋转后,由于图像的坐标值必须是整数,会引起图像部分像素点的改变,此时图像的 大小也会发生一些改变。
若图像旋转45度,则变换关系为
x 0.707x0 0.707y0
y

0.707x0
0.707y0
原始图像的点(1, 1),旋转后为小数,经舍入后为(1, 0),产生了位置误差。因此,图像旋转 后,可能会发生一些细微变化。
2
本章内容
点运算
对一幅图像中每个像素点的灰度值进行运算的方法。
• 代数、逻辑运算
将两幅或多幅图像通过对应像素间的加、减、乘、除运算或逻辑与、或、非运算 得到输出图像的方法。
几何运算
改变图像图像中物体对象(像素)之间的空间关系。可分为位置变换、形状变换及复 合变换。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数字图像处理》实验报告
学院计算机科学与技术学院
年级2013级
专业计算机科学与技术
学号2013434026
姓名__ _ 许林青_____ _____
日期_________2015.10.14____________
实验四图像的灰度变换及代数运算
一、实验目的
1、学习使用Matlab中的图像处理工具箱;
2、使用Matlab中的图像处理工具箱实现图像文件的读、写和显示;
3、使用Matlab中的图像处理工具箱实现获取图像文件的基本信息。

二、实验内容
1、利用Matlab的Help功能,查找并学会使用图像处理工具箱中的如下命令或函数:(1)图像的剪切imcrop()
(2)图像的加imadd()
(3)图像的减imsubtract()
(4)图像的乘immultiply()
(4)图像的除imdivide()
2、编程实现:
(1)读入2幅图像并显示;
>> I=imread('H:\数字图像\图片1.jpg');
subplot(211);
imshow(I)
J=imread('H:\数字图像\图片2.jpg');
subplot(212);
imshow(J);
(2)将2幅图像剪切成相同大小;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100, 100, 100, 100])
J1=imcrop(J,[100, 100, 100, 100])
figure(1);
subplot(211);
imshow(I1);
subplot(212);
imshow(J1);
h=imadd(I1,J1)
(3)将2幅图像叠加并显示,灰度变换(变暗)后再显示;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100, 100, 100, 100])
J1=imcrop(J,[100, 100, 100, 100])
figure(1);
subplot(211);
imshow(I1);
subplot(212);
imshow(J1);
h=imadd(I1,J1)
figure(3), imshow(h);
A=rgb2gray(h); imshow(h);
figure,imshow(A)
(4)从叠加图像中恢复原来2幅图像并显示;
I=imread('I:\数字图像\图片1.jpg');
J=imread('I:\数字图像\图片2.jpg');
I1=imcrop(I,[100,100,100,100])
J1=imcrop(J,[100,100,100,100])
K=imadd(I1/2,J1/2);
subplot(221)
imshow(K);
I2=imsubtract(K,J1/2);
subplot(223)
imshow(I2);
J2=imsubtract(K,I1/2)
subplot(224)
imshow(J2)
4、思考:
(1)2幅图像大小不同能否直接相加?
答:不能。

(2)用矩阵加和用imadd()结果是否一样?
答:一样,imadd()函数将相应矩阵X中的元素与相应矩阵 Y 中的元素进行叠加,
返回一个叠加结果作为输出数列 Z 中对应的元素,与矩阵相加相同。

但imadd不
支持3张及以上图。

(3)叠加后的图像和2幅原图的颜色一样吗?为什么?
答:不一样,超出255的部分自动处理。

(4)从叠加图像中恢复出的2幅图像和原图比有变化吗?为什么?
答:图像变暗,清晰度降低。

相关文档
最新文档