基于Matlab实现的图像特效处理毕业设计
数字图像是指由被称作象素的⼩块区域组成的⼆维矩阵。将⼀幅⼆维的图像通过有限个离散点来表⽰就成为了数字图像,其中的每个点称为图像元素,即像素。像素值往往⽤来表⽰像素的灰度级、颜⾊、⾼度值、透明度等等。
对于单⾊及灰度图像的处理,可以采⽤每⼀个像素的⾼度值来⼀⼀表⽰该像素点的数值,通常它的数值范围⼤约在0~255内,即可⽤⼀
生日歌词个Byte来表⽰出来,当然在此范围内0表⽰⿊,255表⽰⽩,⽽其他的就是灰度了,例如图2.1所⽰可见到关于灰度图像及其对应的矩阵。
图2.1灰度图像及其对应的矩阵
在数字图像处理过程中,图像可⽤红,绿,蓝三个元组进⾏⼆维矩阵来表⽰其范围值,通常可以⽤三元组来表⽰第个数值的⼤⼩,其范围在0~255内,当然0就表⽰没有⼀个基⾊像素值。⽽255则表⽰图像其相应的基⾊在图像中像素的最⼤值,在这些情况下,可以看出以下的数据,清晰明了的看出三个字节表⽰。根据其他所要求的数据可以⽤其数据直观的看出问题。如图2.2所⽰:
图2.2彩⾊图像及其对应的矩阵
数字图像是对⼆维连续光函数进⾏等距离矩形⽹格采样,再对幅度进⾏等间隔量化得到的⼆维数据矩阵。采样是测量每个象素值⽽量化是将该值数字化的过程。
数字图像在本质上是⼆维信号,因此信号处理(以⼀维信号为对象展开的课程)中的基本技术(如FFT)可以⽤在数字图像处理中。但是,由于数字图像只是⼀种⾮常特殊的⼆维信号,反映场景的视
觉属性,只是⼆维连续信号的⾮常稀疏的采样,希望从单个或少量采样中获得有意义的描述或特征,⽆法照搬⼀维信号处理的⽅法,需要专门的技术。实际上数字图像处理更多地依赖于具体应⽤问题,是⼀系列的特殊技术的汇集,缺乏贯穿始终的严格的理论体系。
数字图像处理是⼀个多学科交叉的领域,涉及光学、电⼦学、数学、摄影技术、计算机技术等众多学科,是⼀个⾼度综合的技术学科。
对图像进⾏处理(或加⼯、分析)的主要⽬的有三个⽅⾯:
(1)为了提⾼图像的视感及质量,将进⾏⼀些图像的⾼度,彩⾊变换及增强等要素,对图像进⾏了⼀些⼏何的变换等等,⽅便提⾼图像的质量。
(2)在提取图像的过程中,需要⼀些特性及提取的信息为分析图像提供⼤量的⽅便。在模式识别中便于操作。它包括多个⽅⾯的要素,例如频域特性,灰度及颜⾊、边界、区域、纹理、形状及关系等等特性,
  (3)在⼤量的图像的变换及编码和压缩等技术中,为了⽅便图像的存储及传输。⽆论是哪种图像的处理或是加⼯,都需采⽤计算机与图像专⽤设备来完成图像处理对图像数据进⾏⼀些必要的加⼯处理等等。
装修房子1) 在图像变换中,由于图像矩阵函数很庞⼤,需要在空间域中进⾏⼤量的处理,这些内容涉及计算量相当⼤。因此,通常采⽤的图像变换的⽅法有、沃尔什、等间接处理技术,将空间域的处理转换为变换域处理,可减少计算量也可获得更有效的处理。
  2) 在图像编码压缩技术中,可减少描述图像的数据量(即Bit数),即可节省图像传输、处理时间和减少所占⽤的存储器容量。⽽图像压缩技术可以在不失真的前提下获得相应的要求,也可以在允许失真的条件下进⾏图像处理。图像编码技术是图像压缩技术中最重要的⽅法之⼀,它在图像处理技术中是发展最早且⽐较成熟的⼀门编码技术。
  3) 图像的增强和复原⽬的是为了达到图像的质量,例如去除,提⾼图像的清晰度等等。图像增强不考虑图像降低质量的原因,突出图像中所需求的部分。如强化边缘的设置,可使图像中物体轮廓边缘更加清晰可见,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质(降低质量)的原因有⼀定的了解,⼀般需要根据降质过程建⽴"降质模型",再采⽤某种滤波⽅法,恢复或重建技术来还原各种图像达到所需要⽬的。
  4)图像分割技术是数字图像处理中的重要技术之⼀。图像分割技术是将图像中有意义的部分提取出来,其中有意义的特征包括图像中的边缘、区域等,它是进⼀步进⾏图像识别、分析和理解的必要之处。⽬前已研究出不少关于边缘提取、区域分割的⽅法,但还没有⼀种普遍适⽤于各种图像的有效的⽅法。因此,对图像分割的研究还在不断深⼊之中,是⽬前图像处理中研究的热门话题之⼀。
  5)图像描述是图像识别和理解的必要前提之⼀。作为最简单的⼆维图像可采⽤其⼏何特性描述物体的技术,⼀般图像的描述⽅法可采⽤其⼆维图像形状描述,它有边界描述和区域描述两类技术。对于特殊的纹理图像可采⽤⼆维纹理特征描述。随着图像处理研究的深⼊发展,已经开始进⾏三维物体描述的研究,提出了体积、表⾯、⼴义圆柱体描述等⽅法来研究。
6)图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)技术后,进⾏图像分割及特征提取的⽅法,从⽽进⾏⼀些判决分类。图像分类常采⽤经典的模式识别⽅法,有统计模式分类和句法(结构)模式分类,近年来新发展起来的和⼈⼯神经⽹络模式分类在图像识别中也越来越受到⼴⼤编程⼈员的重视。
1. ⾊调调整adjust亮度处理brightness
function varargout = brightness_dlg(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',      mfilename, ...
'gui_Singleton',  gui_Singleton, ...
'gui_OpeningFcn', @brightness_dlg_OpeningFcn, ...
'gui_OutputFcn',  @brightness_dlg_OutputFcn, ...
'gui_LayoutFcn',  [] , ...
'gui_Callback',  []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function brightness_dlg_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
setappdata(0, 'brightness_slider', 0);
handles.image = getappdata(0,'process_image');
guidata(hObject, handles);
function varargout = brightness_dlg_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;
function brighterness_slider_Callback(hObject, eventdata, handles) gUpdateBrightnessAxes = getappdata(0, 'update_brightness_axes');
bgt_degree = get(hObject,'Value');
setappdata(0, 'brightness_slider', bgt_degree);
bgt_degree = round(255 * bgt_degree);
set(handles.brightness_edit, 'String', num2str(bgt_degree));
feval(gUpdateBrightnessAxes);
function brighterness_slider_CreateFcn(hObject, eventdata, handles) usewhitebg = 1;
if usewhitebg
set(hObject,'BackgroundColor',[.9 .9 .9]);
else
鸡血藤的作用set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
function brightness_edit_Callback(hObject, eventdata, handles)
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end
function sure_pushbutton_Callback(hObject, eventdata, handles)
image = getappdata(0, 'process_image');
setappdata(0,'origin_image',image);
delete(handles.figure1);
function cancel_pushbutton_Callback(hObject, eventdata, handles) setappdata(0, 'process_image', handles.image);
show_origin_image;
delete(handles.figure1);
1. blur模糊
function out = gauss_blur_process(image_in)
image = image_in;
m = [1 2 1;2 4 2;1 2 1] / 16;
image = myImfilter3_3(image, m);
out = image;
function out = myImfilter3_3(image_in, matrix3_3)
image = image_in;
m = matrix3_3;
[h,w,z] = size(image);
hr = h + 2;
wr = w + 2;
replicate_image = ones(hr,wr,3);
for i = 2:1:hr - 1
英语六级分数分布
for j = 2:1:wr - 1
replicate_image(i,j,:) = image(i-1,j-1,:);
end
end
replicate_image(1,2:1:wr - 1,:) = image(1,:,:);
replicate_image(hr,2:1:wr - 1,:) = image(h,:,:);
replicate_image(2:1:hr - 1,1,:) = image(:,1,:);
replicate_image(2:1:hr - 1,wr,:) = image(:,w,:);
for i = 2:1:hr - 1
for j = 2:1:wr - 1
for z = 1:1:3
pixel = replicate_image(i-1,j-1,z) * m(1,1) + replicate_image(i-1,j,z) * m(1,2) + replicate_image(i-1,j+1,z) * m(1,3) + ...                    replicate_image(i,j-1,z) * m(2,1) + replicate_image(i, j, z) * m(2,2) + replicate_image(i, j+1, z) * m(2,3) + ...
replicate_image(i+1,j-1,z) * m(3,1) + replicate_image(i+1,j,z) * m(3,2) + replicate_image(i+1,j+1,z) * m(3,3);
image_new(i-1,j-1,z) = pixel;
%disp(pixel);
End    end
林申杨雨辰
end
image_new = max(0, image_new);
image_new = min(1, image_new);
out = image_new;
3.扭曲
function out = moire_fringe_process(image_in, degree_in)
image = image_in;
degree = degree_in;
[h,w,z] = size(image);
image_new = ones(h,w,z);
midx = w / 2;
midy = h / 2;
for i=1:1:h
教师节作文300for j=1:1:w
offsetX = j - midx;
offsetY = i - midy;
radian = atan2(offsetY, offsetX);
radius = sqrt(offsetX * offsetX + offsetY * offsetY);      X = round(radius * sin(radian + degree * radius));
Y = round(radius * sin(radian + degree * radius));
X = max(1,X); X = min(w,X);
Y = max(1,Y); Y = min(h,Y);
image_new(i,j,:) = image(Y,X,:);
end
end
image_new = image + 0.5*image_new;
max(image_new,0);  min(1,image_new);
out = image_new;
4. emboss浮雕
function out = color_emboss_process(image_in, angle_in) image = image_in;
angle = angle_in * pi / 180;
pi_quarter = pi / 4;
topleft = cos(angle + pi_quarter);
topright = cos(angle + 3* pi_quarter);
midleft = cos(angle);
center = 1;
midright = cos(angle + 4* pi_quarter);
bottomleft = cos(angle - pi_quarter);
bottommid = cos(angle - 2 * pi_quarter);