整个系统的创新点
此简易画板可以直接在画板上绘图,也可以先导入图片,后在图片上进行绘制,比普通的画板更加有趣。
总体方案设计
画板分为两个板块:可以进行绘制的画板和工具栏。
其中工具栏中有四个模块,实现功能:
(1)调整画笔大小和画笔的颜色
(2)绘图工具(包含画笔、橡皮、圆形绘制、方形绘制)
(3)导入图片
(4)画板的操作(图片保存、画板清空、画板上的图片保存)
(5)新添加的功能——图像处理(包含黑白处理、灰色图像、高斯模糊)
三、界面展示
各个功能实现展示截图
(1)画笔大小、颜色
(2)绘图工具
画笔
global PaintFlag Eflag;
global CFlag RFlag;
CFlag = 0;
RFlag = 0;
PaintFlag = 1;
Eflag = 0;
guidata(hObject, handles);
橡皮擦
global PaintFlag Eflag;
global CFlag RFlag;
CFlag = 0;
RFlag = 0;
PaintFlag = 0;
Eflag = 1;
guidata(hObject, handles);
圆形
global PaintFlag Eflag;
global CFlag RFlag;
CFlag = 1;
RFlag = 0;
PaintFlag = 0;
Eflag = 0;
guidata(hObject, handles);
方形
global PaintFlag Eflag;
global CFlag RFlag;
CFlag = 0;
RFlag = 1;
PaintFlag = 0;
Eflag = 0;
guidata(hObject, handles);
(3)导入图片
[filename pathname] =uigetfile({'*.jpg';'*.bmp';'*.png';'*.*'},'打开图片');
fpath=[pathname filename]; %%将文件名和目录名组合成一个完整的路径
%%打开图像
im=imread(fpath);
hold off;
%%打开axes1的句柄 进行axes1的操作
axes(handles.axes1);
%%在axes1中显示 图像
imshow(im); %%与上上句可直接写成imshow(imread(fpath));
hold on;
(4)画板操作
保存
[FileName, PathName, filterindex] = uiputfile({'*.jpg','JPEG(*.jpg)';...
'*.bmp','Bitmap(*.bmp)';...
'*.gif','GIF(*.gif)';...
'*.*', 'All Files (*.*)'},...
'Save Picture','Untitled');
if filterindex
h = getframe(handles.axes1);
imwrite(h.cdata,[PathName,FileName]);
end
guidata(hObject, handles);