《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 102|回复: 1
收起左侧

[提问] 处理边缘怎么生成逻辑变量了

[复制链接]

签到天数: 2 天

[LV.1]初来乍到

发表于 2016-12-14 12:00:54 | 显示全部楼层 |阅读模式
我的代码就是输入一副图像。然后滤波,二值化。再用canny算子得到边缘图。
结果我看窗口显示我边缘的这个矩阵竟然是逻辑矩阵,为什么呢?!
%边缘检测
clear;
close all;

mm=imread('101.jpg');
headgpic=rgb2gray(mm);
headgpic=filter2(fspecial('average',3),headgpic)/255;
mask=fspecial('gaussian',[15 15],50);
img_mask=imfilter(headgpic,mask);   
[width,height]=size(headgpic);
binary_pic=zeros(width,height);
for i=1:width
    for j=1:height
        if((i<150)||(j<100)||(i>560)||(j>600))
             binary_pic(i,j)=255;   %ROI区域设置
        else if(img_mask(i,j)<0.15)
                binary_pic(i,j)=0;
            else binary_pic(i,j)=255;
            end
        end QQ图片20161214115802.png
    end
end
oo=edge(binary_pic,'canny');

javascript:;


签到天数: 2 天

[LV.1]初来乍到

 楼主| 发表于 2016-12-14 15:11:11 | 显示全部楼层
解决了。用下im2uint8就可以了。。。因为这个阈值用edge检测只有0-1范围。。。如果后面要用和原图一样处理最好不要用uint8
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 陕ICP备08102094号  

GMT+8, 2017-2-25 17:05 , Processed in 0.117273 second(s), 16 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表