图像存储在一个单元阵列被切断

1视图(30天)
这就跟你问声好!
我跑这个for循环和试图拯救我所有的图片在一个单元阵列。但大小的图像存储在单元阵列已经成为从1024年x1344 1 x27。我的代码是使用函数processImage, FOR循环外给相同的分辨率图像。谁能告诉我我犯了一个错误在哪里吗?
谢谢你!
BFPimages = {};
RFPimages = {};
YFPimages = {};
i = 1:4
iTime = num2str(我);
BFPimages{我}= processImage ([' / MATLAB / BFP_Time开车'iTime“.TIF”]);
RFPimages{我}= processImage ([' / MATLAB / RFP_Time开车'iTime“.TIF”]);
YFPimages{我}= processImage ([' / MATLAB / YFP_Time开车'iTime“.TIF”]);
结束

答案(1)

为副总经理
为副总经理 2021年11月27日
编辑:为副总经理 2021年11月27日
无论你processImage函数返回,这不是1024 x1344栅格数据。我怀疑这是被切断。这可能是1 x27向量,同样的文件名1 x27特征向量。
问题是在processImage函数。我们不能去任何进一步的,除非你把它。如果行为改变取决于输出参数的数量,可能会有一个问题与varargout是如何被使用的。
3评论
为副总经理
为副总经理 2021年11月28日
没有一点是文件被读取。你在操作文件名+路径。第二个例子的原因产生长向量,因为它是连接一起的结果。
修复的基本部分是简单地使用imread的函数。现在你的图像数据。也就是说,这个函数实现了基本的正常化。根据你的图片,你可能仅仅能够使用现有的工具来做这个正常化。
%我的图像,这是相同的简单的规范化
%但是RGB图像,这channelwise相对于在全球范围内进行操作
帧=“cameraman.tif”;
一个= processImage(帧);
B = mat2gray (imread(帧));
imshow (A)
immse (A, B)
ans = 9.7862 e-33
函数[Processed_Yeast_Image] = processImage (myImagePath)
doubleImage = im2double (imread (myImagePath));
minImage = min (min (doubleImage));
减去= doubleImage - minImage;
maxImage = max (max(减去));
/ =减去。/ maxImage;
Processed_Yeast_Image =划分;
结束
这工作好和火柴mat2gray的行为()单通道图像。因为计算minImage maxImage假定图像是二维的,他们将nonscalar RGB图像时(1 x1x3)。这意味着如果RGB图像,每个通道独立将规范化。这个不一定是错的,但它不同于mat2gray的行为()。
如果你需要处理我/ RGB图像,你应该决定你是否想要规范化整个图像或每个通道独立。如果你想正常化全球不管图像类型,然后mat2gray()应该足够了。

登录置评。

类别

找到更多的在图片帮助中心文件交换

社区寻宝

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

开始狩猎!