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); 这行我运行不起来.帮我看看是不是出问题了.哪位大哥帮忙下.非常紧急啊.
% 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=