如何执行自动转换矩阵维度,它适用于rgb图像和灰度? ?

1视图(30天)
进行人脸识别,我有一个训练数据库和一些图片。培训数据库中的图像需要预处理之前用于与测试图像进行比较,即输入图像。
这就是我所做的:
T = [];
我= 1:Train_Number
str = int2str(我);
str = strcat (“\”str,“jpg”);
str = strcat (TrainDatabasePath, str);
img = imread (str);
img = rgb2gray (img);
img = imresize (img, 180年[200]);
[irow icol] =大小(img);
temp =重塑(img, irow * icol, 1);
% temp =重塑(排列(双(img), (2, 1, 3)), irow * icol, 1);
T = [T临时];% ' T '每次转后生长
结束
当火车来说,这就做得够好了数据库只包含rgb图像。但对于灰度图像,它给错误相关的维度。
我怎样才能让它为rgb和灰度工作? ?
2的评论
杰克
杰克 2013年2月15日
编辑:杰克 2013年2月15日
好吧. .当我包括灰度图像数据库中,我得到一个错误。
这是我的代码:
T = [];
我= 1:Train_Number
str = int2str(我);
str = strcat (“\”str,“jpg”);
str = strcat (TrainDatabasePath, str);
img = imread (str);
% img = rgb2gray (img);
img = imresize (img, 180年[200]);
[irow icol] =大小(img);
temp =重塑(排列(双(img), (2, 1, 3)), irow * icol, 1);
T = [T临时];% ' T '每次转后生长
结束
这是我收到的错误:
* ? ? ?错误使用= = > horzcat
参数维度是不一致的。
错误= = > CreateDatabase 50
T = [T临时];% ' T '每次把*后生长

登录置评。

接受的答案

1月
1月 2013年2月15日
编辑:1月 2013年2月15日
一些清理和隐式转换pseudo-RGB灰度图像:
nCol = 200;
nRow = 180;
% BUG ? !T =南(nCol * nRow Train_Number);%预先分配! ! !
T =南(nCol * nRow * 3, Train_Number);%预先分配! ! !(编辑)
我= 1:Train_Number
文件名= fullfile (TrainDatabasePath sprintf (“% d.jpg”,我));
img = imread(文件名);
如果ndims (img) = = 2%灰度图片:
img =双(猫(3 img img, img));%伪RGB图像
结束
img = imresize (img, [nCol nRow]);
temp =排列(img, (2, 1, 3));
T (:, i) = temp (:);
结束
但是,我不认为一个人脸识别系统的训练是有效的,当你将它与RGB和灰度图像。我宁愿将RGB转换为灰度。
img = rgb2gray (img);
8的评论
1月
1月 2017年11月9日
@Mahima列为:你提供的是一行代码和部分错误消息。似乎“双(InImage)”和“m”没有相同的尺寸。没有更多的信息,就没有机会猜,为什么这种情况或问题是什么。
请打开一个新线程的新问题,并添加更多的信息。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!