matlab上的图象检测颜色模型问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:12:40
x1=imread('a099.jpg');
% x2=imread('a021.jpg');
% change to HSI model
x11=rgb2hsi(x1);
% x22=rgb2hsi(x2);
% x1r=im2double(x1(:,:,1));
% x1g=im2double(x1(:,:,2));
% x1b=im2double(x1(:,:,3));
% x1gray=0.11*x1r+0.59*x1g+0.3*x1b;
x1h=im2double(x11(:,:,1));
x1s=im2double(x11(:,:,2));
x1i=im2double(x11(:,:,3));

area1=x1h>= 0/360;
area2=x1h<=60/360;
area=and(area1,area2);
c1=and(x1s>=40/255, x1s<80/255);
c2=and(x1i>=185/255, x1i<1);
c=and(c2,area);
subplot(221); imshow(x1); subplot(222); imshow(x1h);
subplot(223); imshow(area); subplot(224); imshow(c);

帮我看看这代码,最好每行后面都有注释.c=and(c2,area); 这行我运行不起来.帮我看看是不是出问题了.哪位大哥帮忙下.非常紧急啊.

% 程序我都给你加上注释了,我这边可以运行,没有问题,你那边是不是因为缺少什么工具函数导致的 ,图片是我这边的运行结果

clear; 

clc; 

x1=imread('a099.jpg'); % 读取jpg文件 

% x2=imread('a021.jpg'); 

% change to HSI model 

x11=rgb2hsi(x1); % 这应该是将rgb格式的图形格式转换为hsi图形格式,将(红,绿,蓝)变为(灰度,饱和度,亮度) 

% x22=rgb2hsi(x2); 

% x1r=im2double(x1(:,:,1)); 

% x1g=im2double(x1(:,:,2)); 

% x1b=im2double(x1(:,:,3)); 

% x1gray=0.11*x1r+0.59*x1g+0.3*x1b; 

x1h=im2double(x11(:,:,1)); % 这句很简单了,图形格式改为double格式了 

x1s=im2double(x11(:,:,2)); 

x1i=im2double(x11(:,:,3)); 

area1=x1h>= 0/360; % x1h>0/360的点 area1=1;否则area1 对应的点为 0 

area2=x1h<=60/360; 

area=and(area1,area2); % 当 0/360<=x1h<=60/360 之间的所有点对应位置的area为 0 

c1=