返回   MATLAB中国论坛|MATLAB爱好者之家—不仅仅是MATLAB! > 特色讨论区:工程数学软件-不仅仅是MATLAB! > MATLAB论坛


MATLAB论坛 一切MATLAB相关问题在此讨论,发帖时必须选择相应主题前缀:MATLAB基础,MATLAB混合编程,MATLAB数学问题,MATLAB工具箱,MATLAB图像处理,MATLAB GUI,MATLAB毕业设计,Simulink相关等。



回复
 
LinkBack 主题工具 显示模式
旧 2018-05-14, 03:27 PM   #1
初级会员
 
注册日期: 2018-05-14
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
Cdma 正向着好的方向发展
默认 在matlab7中可以运行的程序在2017和2012 中报错

这是个指静脉图像处理的程序,在7中没有报错,在201

clc
clear
close
A=imread('E:\Matlab_12\workspace\IMAGE\Mycollection.bmp');
pic=rgb2gray(A);%转化为灰度图像
%一次裁剪
I=imcrop(pic,[65 270 1400 660]);
%中值滤波
b=medfilt2(I,[9,9]);
%均值滤波
%h=fspecial('average');
%b = filter2(h, I);
BW1=edge(b,'sobel');
%边缘检测
%BW1=edge(b,'sobel',0.05,'vertical');

%[BW1,thresh]=edge(b,'sobel');
%disp('Sobel算子自动选择阈值为:');
%disp(thresh)

se1 = strel('disk', 3);
%闭运算
BW2 = imdilate(BW1, se1);
se2 = strel('disk', 2);
BW2 = imerode(BW2, se2);
BW = bwmorph(BW2, 'thin',Inf);

figure(1)
subplot(121);
imshow(BW1);
title('边缘检测图像');
subplot(122);
imshow(BW);
title('边缘细化图像');

%ROI横向截取
[m,n] = size(BW);
r=0;
for i=1:floor(m/2)
for j=1:n
if BW(i,j)==1
r=i;
else
r=r;
end
end
end
t=0;
for i=floor(m/2):m-2
for j=1:n
if BW(i,j)==1
t=i;
break
else t=t;
end
end
if t==i
break
end
end
I1=imcrop(I,[0 r n t-r]);
%figure(8)
%imshow(I1);

%ROI垂直截取
[m,n] = size(I1);
L=zeros(1,n);
for j=1:n
L(j)=sum(I1(:,j));
end
figure(5)
plot(L);%画出图像数据
p1=0;
max1=L(floor(n/2));
for j=floor(n/2):n-1
%m(i)=(L(i)+L(i+15))/15;
%if m(i)>m(i-1)
%max=m(i+1);
% p1=(i+i+15)/2;
if L(j)>max1
max1=L(j);
p1=j;
else
max1=max1;
p1=p1;
end
end

p2=0;
for j=50:18:floor(n/2)
m(j)=(L(j)+L(j+18))/18;
if m(j)<m(j-18)
%min=m(i+1);
p2=(j+j+18)/2;
%if L(i)<L(i-1)&L(i)>L(i+1)
%min=L(i);
% p2=i;
break
else
%min=min;
p2=p2;
end
end

%在这个地方报错
I2=imcrop(I1,[p2 0 p1-p2 m]);

figure(2)
subplot(121);
imshow(I);
axis on
title('原图像');
subplot(122);
imshow(I2);
axis on
title('ROI图像');

%灰度归一化
originalMinValue = double(min(min(I2)));
originalMaxValue = double(max(max(I2)));
originalRange = originalMaxValue - originalMinValue;
desiredMin = 0;
desiredMax = 255;
desiredRange = desiredMax - desiredMin;
dblImageS255 = desiredRange * (double(I2) - originalMinValue) / originalRange + desiredMin;
I3=uint8(dblImageS255);
%figure(3)
%subplot(121);
%imshow(I3);
%subplot(122);
%imshow(I4);


%尺度归一化
[m n]=size(I3);
T = [double(150/n) 0 0;0 double(90/m) 0;0 0 1];
tform = maketform('affine',T);
I4 = imtransform(I3,tform,'bilinear');
%[m3 n3]=size(I4)
%直方图均衡化
%I5=histeq(I4);
%figure(8)
I5=I4;


figure(3)
subplot(221);
imshow(I2);
title('ROI区域');
subplot(222);
imshow(I3);
title('灰度归一化');
%axis on
subplot(223);
imshow(I4);
title('尺度归一化');
%axis on
subplot(224);
imshow(I5);
title('直方图均衡化');
%图像分割
%shuru=niblack(I5);
shuru = fangxiangfenge6(I5,18);
%shuru6 = Untitled(I5,10);
%[m1 n1]=size(shuru)
shuru1 = lvbo(shuru,20);
shuru1=medfilt2(shuru1,[5,5]);
shuru1 = tianchong(shuru1, 3);
shuru1 = lvbo(shuru1,200);

%细化
se3 = strel('disk', 3);
shuru2 = imdilate(shuru1, se3);
se4 = strel('disk', 2);
shuru2 = imerode(shuru2, se4);
shuru2 = bwmorph(shuru2, 'thin',Inf);
%[m2 n2]=size(shuru1)

figure(4)
subplot(221);
imshow(shuru);
title('分割图像');
%axis on
subplot(222);
imshow(shuru1);
title('处理后图像');
subplot(223);
imshow(shuru2);
title('处理后图像');


总是报错
错误使用 images.internal.imageDisplayParsePVPairs (line 125)
输入参数无效。

出错 images.internal.imageDisplayParseInputs (line 69)
[common_args,specific_args] = images.internal.imageDisplayParsePVPairs(varargin{:});

出错 imshow (line 241)
images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});

出错 imcrop>parseInputs (line 252)
imshow(a,cm);

出错 imcrop (line 93)
[x,y,a,cm,spatial_rect,h_image,placement_cancelled] = parseInputs(varargin{:});

出错 y (line 105)
I2=imcrop(I1,[p2 0 p1-p2 m]);
Cdma 当前离线   回复时引用此帖
旧 2018-05-14, 03:30 PM   #2
初级会员
 
注册日期: 2018-05-14
帖子: 2
感谢他人: 0
有 0 帖获得 0 感谢
声望力: 0
Cdma 正向着好的方向发展
默认 回复: 在matlab7中可以运行的程序在2017和2012 中报错

请大神帮忙,,图片有点大是我用USB摄像头采集的,所以大神可以留下联系方式
Cdma 当前离线   回复时引用此帖
回复

书签

标签
matlab, 手指静脉识别, 数字图像处理

主题工具
显示模式

发帖规则
不可以发表新主题
可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 10:36 PM


Powered by vBulletin
版权所有 ©2000 - 2018,Jelsoft Enterprises Ltd.
陕ICP备07001583号

SEO by vBSEO ©2009, Crawlability, Inc.