资源简介
导入一张靶纸原图,导入一张带有弹孔的靶纸图,经过图像识别与处理,能显示出靶数。以上过程已经整合到简易的GUI界面中。
代码片段和文件信息
function varargout = gui(varargin)
gui_Singleton = 1;
gui_State = struct(‘gui_Name‘ mfilename ...
‘gui_Singleton‘ gui_Singleton ...
‘gui_OpeningFcn‘ @gui_OpeningFcn ...
‘gui_OutputFcn‘ @gui_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 gui_OpeningFcn(hobject eventdata handles varargin)
handles.output = hobject;
guidata(hobject handles);
function varargout = gui_OutputFcn(hobject eventdata handles)
varargout{1} = handles.output;
function pushbutton2_Callback(hobject eventdata handles)
if get(handles.radiobutton1‘value‘) %判断是否选择了单选按钮
[filenamepathname]=uigetfile({‘*.*‘;‘*.bmp‘;‘*.jpg‘;‘*.tif‘;‘*.jpg‘}‘选择图像‘);
if isequal(filename0)||isequal(pathname0)
errordlg(‘您还没有选取图片!!‘‘温馨提示‘);%如果没有输入,则创建错误对话框
return;
else
axes(handles.axes1);%%使用图像,操作在坐标1
image=[pathnamefilename];%合成路径+文件名
I1=imread(image);%读取图像
imshow(I1);%在坐标axes1显示原图像
handles.I1 = I1;
guidata(hobjecthandles); %以上两行是用于不用Function之间调用同一张图片
title(‘靶纸图像‘); %图片注释
end
elseif get(handles.radiobutton2‘value‘)
[filenamepathname]=uigetfile({‘*.*‘;‘*.bmp‘;‘*.jpg‘;‘*.tif‘;‘*.png‘}‘选择图像‘);
if isequal(filename0)||isequal(pathname0)
errordlg(‘您还没有选取图片!!‘‘温馨提示‘);%如果没有输入,则创建错误对话框
return;
else
axes(handles.axes2);%%使用图像,操作在坐标1
image=[pathnamefilename];%合成路径+文件名
I2=imread(image);%读取图像
imshow(I2);%在坐标axes1显示原图像
handles.I2 = I2;
guidata(hobjecthandles);
title(‘弹孔图像‘);
end
end
function radiobutton1_Callback(hobject eventdata handles)
set(handles.radiobutton1‘value‘1);
set(handles.radiobutton2‘value‘0);
function radiobutton2_Callback(hobject eventdata handles)
set(handles.radiobutton1‘value‘0);
set(handles.radiobutton2‘value‘1);
function [hough_circle]=hough_circle(BWstep_rstep_angler_minr_maxp)
% Hough变换来检测圆心
global t1; %最小圆半径
global t2; %圆心的x
global t3; %圆心的y
t2=0;
t3=0;
[mn]=size(BW);
size_r=round((r_max-r_min)/step_r)+1;
size_angle=round(2*pi/step_angle);
hough_space=zeros(mnsize_r);
[rowscols]=find(BW);
ecount=size(rows);
for i=1:ecount
for r=1:size_r
for k=1:size_angle
a=round(rows(i)-(r_min+(r-1)*step_r)*cos(k*size_angle));
b=round(cols(i)-(r_min+(r-1)*step_r)*sin(k*size_angle));
if(a>0&&a<=m&&b>0&&b<=n)
hough_space(abr)=hough_space(abr)+1;
end
end
end
end
max_para=max(max(max(hough_space)));
index=find(hough_space>=max_para*p);
length=size(index);
hough_circle=false(mn);
for i=1:ecount
for k=1:length
par3=floor(index(k)/(m*n))+1;
par2=floor((index(k)-(par3-1)*(m*n))/m)+1;
par1=index(k)-(par3-1)*(m*n)-(par2-1)*m
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 63198 2019-12-09 15:06 GUI\gui.fig
文件 7259 2019-12-11 22:48 GUI\gui.m
目录 0 2019-12-11 22:49 GUI
----------- --------- ---------- ----- ----
70457 3
- 上一篇:matlab声线图源代码
- 下一篇:Matlab2010b的license.txt
相关资源
- Matlab2010b的license.txt
- matlab声线图源代码
- 神经网络理论与Matlab R2007实现
-
matlab simuli
nk 离合器模型 - 多车型车辆路径问题Matlab程序
- GPS/INS组合导航Matlab仿真源码包含实验
- Delaunay三角划分的Matlab实现
- isight联合matlab仿真
- 利用MATLAB优化电力系统稳定器
- BPA转matpower格式Matlab程序
- 基于C MEX S函数的研华PCI1716驱动程序
- 最小二乘法 MATLAB
- aodv和dsr的matlab实现
- 回溯法解决资源约束下的二维动态规
- rgb2lab颜色空间转换的MATLAB代码
- polar程序MATLAB编译码
- matlab基于SAD的区域立体匹配方法
- 灰度高度图
- Matlab实现文本文件读取并存储成矩阵
- LS信道估计算法仿真代码
- 基于HMM的语音识别系统的matlab仿真
- Matlab与蒙特卡洛仿真
- SAR点目标仿真
- matlab 实现粒子群优化算法代码
- 史密斯圆图 matlab实现
- 一维信号的Haar小波分解与重构matlab程
- 潮流计算matlab代码
- Kohonen神经网络算法的matlab实现
- 基于matlab的电力系统仿真
- 自适应最陡下降法Matlab仿真
评论
共有 条评论