xyq001303 发表于 2010-10-16 11:04:51

请高手指点,急!!!

clear;
a=imread('圆环梯度.jpg');
b=rgb2gray(a);
imshow(b);
=ginput(2);%通过两点确定处理的方向,先按靠外的点,再按靠里的点
x=round(x);
y=round(y);
if y(1)<y(2)&&x(1)<x(2)
    smimg=b(y(1):y(2),x(1):x(2));
elseif y(1)<y(2)&&x(1)>x(2)
    smimg=b(y(1):y(2),x(2):x(1));
    smimg=fliplr(smimg);
elseif y(1)>y(2)&&x(1)<x(2)
    smimg=b(y(2):y(1),x(1):x(2));
    smimg=flipud(smimg);
elseif y(1)>y(2)&&x(1)>x(2)
    smimg=b(y(2):y(1),x(2):x(1));
    smimg=flipud(smimg);
    smimg=fliplr(smimg);
end
   
data=diag(smimg);
data=double(data);
imgrad=gradient(data);%求向量梯度
我用以上代码将一个图片的自己选定的方向的颜色变化梯度求了出来,是一个列矩阵,那么请问怎么才能根据这个列矩阵求出最后的是什么颜色,并且统计出出现过多少个紫色。主要是我不知道颜色跟梯度的对应关系,所以请高手指点下。

xyq001303 发表于 2010-10-16 15:37:23

1# xyq001303
是不是应该求三维的梯度,那么应该怎么改呢???

qibbxxt 发表于 2010-10-17 19:35:02

你可以将你最后的结果和颜色对比,就会知道是什么颜色
统计多少紫色,关键在于你如何判定是不是紫色
页: [1]
查看完整版本: 请高手指点,急!!!