图5.15 拉普拉斯锐化
实现锐化功能的相关代码如下:
function Gradient_Callback(hObject, eventdata, handles)
% hObject handle to Gradient (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
tic;
f=handles.imdata;
[row,col]=size(f);
prompt={'Threshold(0~255):'};
name='Input for Gradient Sharping';
numlines=1;
defaultanswer={'10'};
anss=inputdlg(prompt,name,numlines,defaultanswer);
th=str2num(anss{1});
f1=double(f);
f2=zeros(row,col);
for x=2:(row-1)
for y=2:(col-1)
g=abs(f1(x,y)-f1(x+1,y))+abs(f1(x,y)-f1(x,y+1));
if g>=th
f2(x,y)=g;
else
f2(x,y)=f1(x,y);
end
end
end
Time=toc;
set(handles.edit1,'string',Time);
extendx=double(zeros(256));
if (row<=256)&(row<=256)
W=256;
else
W=max(row,col);
end
for m=1:W
for n=1:W
if (m<=row)&(n<=col)
extendx(m,n)=f2(m,n);
else
extendx(m,n)=realmax;
end
end
end
axes(handles.axes2);
imshow(extendx,[min(min(f2)),max(max(f2))]);
handles.imdata=f2;
guidata(hObject, handles);
5.6 图像分割
5.6.1 阈值分割
所谓阈值的方法实质是利用图像的灰度直方图信息得到用于分割的阈值。基于阈值的分割方法可以分为全阈值的方法和局部阈值的方法。所谓全阈值的方法是利用整幅图像的灰度信息,从整幅图像中得到用于分割的阈值,并且根据该阈值对图像进行分割;而局部阈值的方法是根据图像中不同区域获得对应不同区域的几个阈值,利用这些得的阈值对图像进行分割。本系统中实现阈值分割的主要代码如下所示:
function GrayThreshold_Callback(hObject, eventdata, handles)
tic;
x=handles.imdata;
N=256;
[row,col]=size(x);
th=0;
p=zeros(N);
for i=1:row*col
p(fix(x(i)+1))=p(fix(x(i)+1))+1;
end
p1=zeros(N);
p1(1)=p(1);
for i=2:N
p1(i)=p(i)-p(i-1);
end
p2=zeros(N);
p2(1)=p1(1);
for i=2:N
p2(i)=p1(i)-p1(i-1);
end
for i=1:N
if p2(i)>=0
th=p2(i);
end
end
for i=1:row*col;
if x(i)>th
x(i)=256;
else
x(i)=0;
end
end
Time=toc;
set(handles.edit1,'string',Time);
if (row<=256)&(row<=256)
W=256;
else
W=max(row,col);
end
extendx=double(zeros(W));
for m=1:W
- 上一篇:ASP.NET英语翻译课程教学网站设计
- 下一篇:基于ASP.NET的图书管理系统+流程图+ER图
-
-
-
-
-
-
-
java+mysql车辆管理系统的设计+源代码
大众媒体对公共政策制定的影响
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
杂拟谷盗体内共生菌沃尔...
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
乳业同业并购式全产业链...
河岸冲刷和泥沙淤积的监测国内外研究现状
电站锅炉暖风器设计任务书