如果一个图本身就是黑白的用不用在转换成二维灰度图?
出错的程序如下:
>> I = 'D:\abc.jpg'
I =
D:\abc.jpg
>> [BW,thresh] = edge(I,'canny');
% 返回当前Canny算子边缘检测的阈值
disp('Canny算子自动选择的阈值为:')
disp(thresh)
subplot(121),imshow(BW);
title('自动阈值的Canny算子边缘检测')
BW = edge(I,'Canny',[0.2 0.5]);
% 以阈值为[0.1 0.5]对图像进行Canny算子检测
subplot(122),imshow(BW);
title('阈值为[0.1 0.5]的Canny算子边缘检测')
??? Error using ==> iptcheckinput
Function EDGE expected its first input, I,
to be one of these types:
double, single, uint8, uint16, uint32, int8, int16, int32, logical
Instead its type was char.
Error in ==> edge>parse_inputs at 541
iptcheckinput(I,{'numeric','logical'},{'nonsparse','2d'},mfilename,'I',1);
Error in ==> edge at 197
[a,method,thresh,sigma,thinning,H,kx,ky] = parse_inputs(varargin{:});
恳请路过的大侠帮忙
matlab中的edge函数入口参数如何设置?
这种情况下建议用bwperim来提取边缘
matlab中edge的用法
采用灰度或一个二值化图像I作为它的输入,并返回一个与I相同大小的二值化图像BW,在函数检测到边缘的地方为1,其他地方为0。BW = edge(I,'sobel')自动选择阈值用Sobel算子进行边缘检测。BW = edge(I,'sobel',thresh)根据所指定的敏感度阈值thresh,用Sobel算子进行边缘检测,它忽略了所有小于阈值的...
matlab里面edge函数的问题:
是不是你自己写了个m文件也取edge名字了,把文件名改一下
edge函数 MATLAB,求助,为何edge函数无法正常运行?代码及图片如下_百 ...
代码如下:特别提醒:最后的边缘提取(效果见第二张图),使用了一个函数boundarymask,这个函数是matlab R2016a版本新引入的函数,低版本中没有。如果你使用低版本的matlab,EDGE1这部分代码可以使用edge替代(即直接使用edge对BW1提取边缘,sobel,canny都可以),但效果可能不如boundarymask。clc; clear;...
matlab的一个轮廓提取问题
问题应该是第一幅中的图片是彩色图片,使用edge函数时要求输入的是灰度图像才行。在第二幅图中你使用了函数rgb2gray将彩色图像转化为了灰度图像,再调用了edge函数,所以结果出来了。你试着在第一幅图像的程序中,在调用edge函数之前先使用rgb2gray函数将图像转化为灰度图像。
matlab不使用内置函数edge等等,如何根据原理直接实现LOG算子?
edge不是matlab的内置函数,如何判断可以用 >>type edge 是否能显示其函数内容,如能显示就不是内置函数。如不用edge函数,可以根据LOG算子(边缘检测算法)来实现edge函数的功能。实现LOG算子的步骤:(1) 采用二维高斯滤波器平滑滤波; (2) 采用二维拉普算子进行图像增强;...
matlab中edge支持哪几种不同边缘检测算子
edge函数支持以下几种边缘检测子:Sobel, Prewitt, Roberts, Laplacian of Gaussian, zero-cross, Canny.可以在Command Window里面输入help edge 命令,查询各种检测子的具体用法,以及其算法的简要描述。
matlab边沿提取算法
下面是matlab自带的edge函数的全部算法,只要调用就可以了,你没有要求,所以要代码是没有意义的。BW = edge(I,'sobel')BW = edge(I,'sobel',thresh)BW = edge(I,'sobel',thresh,direction)[BW,thresh] = edge(I,'sobel',...)BW = edge(I,'prewitt')BW = edge(I,'prewitt',thresh)B...
matlab函数文件中的错误
function img = edu_imgpreprocess(I) %图像预处理 Igray = rgb2gray(I); %转化成灰色图像 Ibw = im2bw(Igray,graythresh(Igray));%转化成二值 graythresh返回图像的阈值和阈值的有效性 Iedge = edge(uint8(Ibw));se = strel('square',3);Iedge2 = imdilate(Iedge, se);Ifill= ...
edge matlab R2012b问题
edge函数不支持robert算子了。您可以换别的算子,比如canny。