一个MATLAB纯m生成的Canny边缘(二)一些基础知识

数据类型

实际上,MATLAB读入的数据是一种uint8类型的
在这里插入图片描述
这种类型主要用于存储,但是不能用于一些计算,具体我在做ui的时候发现的但是什么时候不能用我也没搞清楚。其实我也没特别搞的清楚。

ui的一些函数

1.uigetfile。

 [filename,path] = uigetfile({'*.';'*.jpg';'*.png';'*.jpeg';'*.bmp';;},'选择图片');

ui主要是让你交互选择图片或者文件。
2.errordlg

warn = errordlg('你取消了选择,请勾选文件','File Error');

比如我在try,catch中的添加的语句。如果你取消了勾选就会跳出警告对话框。

3.inputdlg

    msg = inputdlg(['请输入\sigma的值']);         %对话框的提示
    true_msg = str2num(cell2mat(msg));

在输入对话框中的数据类型是一种cell元胞类型,需要转成mat再转num。可以给之后的数据。

4.布局,callback函数
这部分内容可以看我之前写的blog,我就不再写了。

try catch

try catch这种语句能够让你避免MATLAB自带有的错误,try如果成功的话,程序运行下去,如果遇到错误,那么就进入catch语句。在这里插入图片描述
如果不使用try、catch的话如果你取消勾选的话你会遇到上面的报错。

 function [] = m1_callback(source,evendata)
             handles = guidata(source);
            [filename,path] = uigetfile({'*.';'*.jpg';'*.png';'*.jpeg';'*.bmp';;},'选择图片');
             try isa(filename,'numeric');                       
               truename = [ path,filename ];              %拼接真正的路径名
             im = imread(truename);                        %显示图片
             subplot(2,3,1);                         
             imshow(im);
             chicun = size(im);
             switch numel(chicun)
                 case 2
                     im1 = im;
                 case 3
                     im1 = rgb2gray(im);
             end
             im1 = double(im1);                                 %读入的是uint8类型,要转double才能计算
             handles.im1 = im1;                                     
             guidata(source,handles);
             title('原始图像','fontsize',20);   
             catch
             f = errordlg('你取消了选择,请勾选文件','File Error');
             end
 end

像这里如果用上try、catch的话就会弹出警告对话框。
ui、ui如果你脱离了MATLAB环境不报错,但是只是没结果肯定不好,在MATLAB环境中,会遇到红色的警告。所以用try、catch是一种规范吧。也是让ui更加可读。

plus,布局、回馈函数的内容请去阅读我以前的blog。

至于一些opencv的函数,像fspecial、edge等算子,我就默认不写了,因为比较简单了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值