基于MAtlab数字图像加减乘除 反色 均衡
改进后的同态滤波图像处理技术中的应用

(a1-a2)*(exp(-c*(D^2) / (2*(D0^2))))+a2,D0 主 要 与 照 射 分 量 和 反
射分量对应的频谱幅度对比度有关, 在 MATLAB 下获取遥 感 图 像 的
频谱分析图,得出它的频谱主要在 130~220 之间。 滤波后的图像与原
始图像相比影像清晰度有了明显的改善,道路的边界比原始图像更加
该同态滤波函数作为滤波器进行滤波后, 能够在保留低频分量 aI(u,v)
的 同 时 ,对 高 频 项 bH(u,v)R(u,v)进 行 增 强 ,从 而 使 图 像 边 缘 的 轮 廓
更加清晰,有助于表现出图像中暗处的细节。 最后,再对经过同态滤波
后的图像进行傅里叶反变换,得到:
-1
g(x,y)=F (Gg (u,v))=i′(x,y)+r′(x,y)
传统教育中教与学是脱离的,如果在项目研究过程中将一小部分 专业基础较好,分析能力较强或兴趣大的学生带入进来,将项目进行 分隔分配,一方面学生参与了项目的整个研究过程同时这些学生在学 习过程中也能够起到带头作用和协助教师完成教学工作。
当前是技术发展的高速阶段, 随着网络和微计算机技术的成熟, 新的控制技术不断涌现,做为高职院校教育工作者,尽我们所能的将 各种先进的技术教授给学生是我们的责任,希望通过不断的努力,逐步 的在高职教学中开展现场总线技术的讲授工作并取得一定效果。 科
=[a+bH(u,v)][I(u,v)+R(u,v)]
=aI(u,v)+aR(u,v)+bH(u,v)I(u,v)+bH(u,v)R(u,v) (1-3)
由 式 (1-3)可 知 :a 是 调 整 低 频 分 量 的 系 数 ,即 调 整 入 射 分 量 (调
MATLAB图像倾斜校正

图像倾斜校正_基于MATLAB目的:实现对图像的倾斜校正。
方法一:利用霍夫变换,代码如下:clear,clc,close all;I=imread('1.jpg');bw=rgb2gray(I);bw=im2bw(I,graythresh(bw));bw=double(bw);BW=edge(bw,'canny');imshow(BW);title('canny 边界图像');[H,T,R]=hough(BW);figure,imshow(H,[],'XData',T,'YData',R,'InitialMagnification','fit'); xlabel('\theta'),ylabel('\rho');axis on, axis normal,hold on;P=houghpeaks(H,4,'threshold',ceil(0.3*max(H(:))));x=T(P(:,2)); y = R(P(:,1));plot(x,y,'s','color','white');lines=houghlines(BW,T,R,P,'FillGap',50,'MinLength',7);figure,imshow(BW),title('直线标识图像');max_len = 0;hold on;for k=1:length(lines)xy=[lines(k).point1;lines(k).point2];% 标出线段plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');% 标出线段的起始和终端点plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red');len=norm(lines(k).point1-lines(k).point2);Len(k)=len;if (len>max_len)max_len=len;xy_long=xy;endend% 强调最长的部分plot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','blue');[L1 Index1]=max(Len(:));% 最长线段的起始和终止点x1=[lines(Index1).point1(1) lines(Index1).point2(1)];y1=[lines(Index1).point1(2) lines(Index1).point2(2)];% 求得线段的斜率K1=-(lines(Index1).point1(2)-lines(Index1).point2(2))/...(lines(Index1).point1(1)-lines(Index1).point2(1))angle=atan(K1)*180/piA = imrotate(I,-angle,'bilinear');% imrate 是逆时针的所以取一个负号figure,imshow(A);结果:方法二:由于这里的图形比较规则,可针对性地对图形进行边缘检测,求倾斜角,再根据角度进行校正。
数字图像处理实验 图像生成及取反 图像亮(灰)度变换

数字图像处理实验报告实验一图像处理入门实验:图像生成及取反1、【实验目的】了解matlab有关图像的基本操作,如图像的读写,显示等。
熟悉调试环境。
2、【实验步骤】(1)Matlab workspace中生成一幅大小为512×512像素的8位灰度图, 背景为黑色,中心有一个宽40像素高20像素的白色矩形。
(2)将这幅图像保存为文件test.bmp。
•从文件test.bmp中读出图像到变量I。
•在Matlab图形界面中显示变量I所代表的图像。
•将获得的图像的格式分别转换为“*.tif”、“*.jpg”的格式保存,检查图像文件数据量的大小。
•将图片保存或拷贝到MATLAB程序组根目录的“work”文件夹中,以便后面的实验利用。
•将test.bmp 编程取反,观察效果。
3、【实验源码】(1)图像生成B=zeros(512,512)(2) 在图像中生成宽40像素高20像素的白色矩形for i=246:266for j=246:266B(i,j)=1;endend(3)图像保存imwrite(B,'test.bmp')(4)读出图像到变量I并另存为“*.tif”、“*.jpg”的格式e=imread('test.bmp')imshow(e)imwrite(e,'test.tif')imwrite(e,'test.jpg')(5)将test.bmp 编程取反for j=1:512for k=1:512if(i(j,k)==255)i(j,k)=0;elsei(j,k)=255;end;endend4、【实验截图】查看文件大小将test.bmp 编程取反5、【实验小结】(1)通过本次实验,对Matlab软件处理图像的相关功能有了初步了解。
(2)在灰度图像的取反操作中,可以使用双重循环,对每一行每一列的象素值进行更改操作。
实验二图像亮(灰)度变换1、【实验目的】灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特征更加明显。
数字图像处理课程设计报告matlab

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。
基于MATLAB的彩色图像灰度化处理

目录第1章绪论............................................................................................................................ - 0 - 第2章设计原理.................................................................................................................... - 1 - 第3章彩色图像的灰度化处理............................................................................................ - 2 - 3.1加权平均法 .. (2)3.2平均值法 (2)3.3最大值法 (3)3.4举例对比 (4)3.5结果分析 (5)第4章结论.......................................................................................................................... - 7 - 参考文献.................................................................................................................................... - 7 - 附录............................................................................................................................................ - 8 -基于Matlab的彩色图像灰度化处理第1章绪论在计算机领域中,灰度数字图像是每个像素只有一个采样颜色的图像。
数字图像灰度变换技术总结

数字图像灰度变换技术总结篇一:图像的灰度变换昆明理工大学(数字图像处理)实验报告实验名称:图像的灰度变换专业:电子信息科学与技术姓名:学号:成绩:[实验目的]1、理解并掌握灰度变换的基本原理和方法。
2、编程实现图像灰度变换。
3、分析不同的灰度变换方法对最终图像效果的影响。
[实验内容]1、灰度的线性变换;2、灰度的非线性变换;3、图像的二值化;4、图像的反色处理;[实验原理]图像的灰度变换(grayscaletransformation,GST)处理是图像增强处理技术中一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组成部分。
灰度变换是指根据某种目标条件按一定变换关系逐点改变原图像中每一个像素灰度值的方法。
目的是为了改善画质,使图像的显示效果更加清晰。
灰度变换有时又被称为图像的对比度增强或对比度拉伸。
从图像输入装置得到的图像数据,以浓淡表示,(:数字图像灰度变换技术总结)各个像素与某一灰度值相对应。
设原图像像素的灰度值d=f(x,y),处理后图像像素的灰度值d′=g(x,y),则灰度增强可表示为:g(x,y)=T[f(x,y)]或d′=T(d)要求d和d′都在图像的灰度范围之内。
函数T(d)称为灰度变换函数,它描述了输入灰度值和输出灰度值之间的转换关系。
灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占据的灰度范围而使图像在视觉上得到良好的改观,没有利用像素点之间的相互空间关系。
因此,灰度变换处理方法也叫做点运算法。
点运算可以按照预定的方式改变一幅图像的灰度直方图。
除了灰度级的改变是根据某种特定的灰度变换函数进行之外,点运算可以看做是“从像素到像素”的复制操作。
根据g(x,y)=T[f(x,y)],可以将灰度变换分为线性变换和非线性变换。
1、灰度的线性变换若g(x,y)=T[f(x,y)]是一个线性或分段线性的单值函数,例如g(x,y)=T[f(x,y)]=af(x,y)+b则由它确定的灰度变换称为灰度线性变换,简称线性变换。
MATLAB 图像处理命令使用

MATLAB 图像处理命令使用1.MATLAB中图像处理的一些简单函数A、imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径)。
例:[X,MAP]=imread(’flowers.tif’,’tif’);比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size 函数用来显示数组的维数,了解数据的特点。
B=size(a) 返回数组a 的维数。
B、imwriteimwrite函数用于输出图像,其语法格式为:imwrite(X,map,filename,fmt)imwrite(X,map,filename,fmt)按照fmt指定的格式将图像数据矩阵X和调色板map写入文件filename。
C、imfinfoimfinfo函数用于读取图像文件的有关信息,其语法格式为imfinfo(filename,fmt)imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。
2.MATLAB中图像文件的显示imshowimshow函数是最常用的显示各种图像的函数,其语法如下:imshow(X,map)其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。
(1)二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。
如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。
使用Matlab进行图像配色与调整的技巧与实例

使用Matlab进行图像配色与调整的技巧与实例一、引言图像处理是计算机视觉和图形学中的一个重要领域。
在这个数字时代,我们面临着大量的图像内容,因此需要通过技术手段对这些图像进行优化和调整,以满足用户需求。
本文将介绍如何使用Matlab对图像进行配色和调整的技巧,并通过实例进行说明。
二、Matlab在图像处理中的作用Matlab是一种功能强大的高级编程语言和交互式环境,广泛应用于科学和工程领域。
它提供了丰富的图像处理工具箱,以及各种函数和算法,可以方便地进行图像的加载、处理和保存等操作。
借助Matlab强大的功能,我们可以在图像处理中更加高效和便捷地实现我们的目标。
三、图像色彩空间的基本概念在进行图像配色和调整之前,我们首先需要了解色彩空间的基本概念。
色彩空间是描述图像颜色的一种数学模型。
常见的色彩空间有RGB、HSV、Lab等。
其中,RGB是最常用的色彩空间,它是通过红、绿、蓝三个通道的强度值来描述颜色的。
HSV色彩空间则将颜色分为色调(Hue)、饱和度(Saturation)和明度(Value)三个分量,更符合人类对颜色的感知。
Lab色彩空间则将颜色分为亮度(Lightness)、a 和b两个颜色分量,可以准确地描述颜色的特征。
四、图像配色的技巧1. 色调映射色调映射是一种常用的图像配色技巧,它可以改变图像的整体色调,从而产生不同的视觉效果。
在Matlab中,可以使用imadjust函数来实现该技巧。
通过调整色调映射函数的参数,我们可以改变图像的对比度和亮度,从而达到所需的效果。
例如,如果想要增强图像的对比度,可以使用imadjust函数提高图像的对比度参数。
2. 色彩转换色彩转换是将图像从一种色彩空间转换到另一种色彩空间的过程。
在Matlab中,可以使用rgb2hsv和hsv2rgb函数来实现RGB和HSV色彩空间之间的相互转换。
通过进行色彩转换,我们可以更加方便地对图像的色调、饱和度和明度等属性进行调整。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实践一:图像打开和缩放
1.1实践代码:
clear all
I=imread('cat.bmp');
J=imresize(I,0.2);%图像缩小为0.2
J2=imresize(J,15,'nearest');%图像放大,最近邻插值法J3=imresize(J,15,'bilinear');%图像放大,双线性插值法J4=imresize(J,15,'bicubic');%图像放大,双立方插值法subplot(2,2,1);imshow(I);
title('原始图像');
subplot(2,2,2);imshow(J2);
title('最近邻插值法');
subplot(2,2,3);imshow(J3);
title('双线性插值法');
subplot(2,2,4);imshow(J4);
title('双立方插值法');
1.2实践结果截图:
实践二:直方图均衡化
2.1实践代码:
clear all;
I=imread('girl.bmp');
subplot(221);imshow(I);
title('原始图像');
subplot(222);imhist(I);
title('原始图像的直方图');
I1=histeq(I);
subplot(223);imshow(I1);
title('原始图像的均衡化');
subplot(224);imhist(I1);
title('均衡化图像的直方图');
2.2实践结果截图:
实践三:对比度调节
3.1实践代码:
I=imread('catwb.bmp');
J=imadjust(I,[0.3 0.7],[]);
subplot(1,2,1),imshow(I),title('实验原图')
subplot(1,2,2),imshow(J),title('对比度增强效果图') 3.2实践结果截图:
实践四:反色
4.1实践代码:
X1=imread('girl.bmp');
f1=200;
g1=256;
k=g1/f1;
[m,n]=size(X1);
X2=double(X1);
for i=1:m
for j=1:n
f=X2(i,j);
g(i,j)=0;
if(f>=0)&(f<=f1)
g(i,j)=g1-k*f;
else
g(i,j)=0;
end
end
end
subplot(121);imshow(X1);title('原始图像');
subplot(122);imshow(mat2gray(g));title('反色后的图像');
4.2实践结果截图:
实践五:图像的加减乘除法运算
5.1实践代码:
%加减乘除运算
I=imread('girl.bmp');
J=imadd(I,50);%数值与图像相加
background=imopen(I,strel('disk',15));
Ip=imsubtract(I,background);%图像相减
M=immultiply(I,0.5);%图像相乘
It=imdivide(I,background);%图像相除
subplot(231),imshow(I);
title('原始图像');
subplot(232),imshow(J);
title('图像相加效果图');
subplot(233),imshow(Ip);
title('图像相减效果图');
subplot(234),imshow(M);
title('图像相乘效果图');
subplot(236),imshow(It,[]);
title('图像相除效果图');
K=imread('couple.bmp');
H=imadd(I,K,'uint16');%两个尺寸一样的图像相加%转换数据类型相加图像数据
figure;subplot(131);imshow(I);
title('girl的原始图像');
subplot(132);imshow(K);
title('couple的原始图像');
subplot(133);imshow(H,[]);
title('两图像相加效果图');
5.2实践结果截图:。