我在从一个文件夹中读取Matlab中的多个图像时遇到问题.我想用他们的原始名称阅读(使用命令imread因为是多频段).图像的名称类似于"2001_01","2001_02".这是我的代码:
myPath= 'C:\images\'; %'
a=dir(fullfile(myPath,'*.tif'));
fileNames={a.name};
Run Code Online (Sandbox Code Playgroud)
然后...
for k = 1:length(fileNames)
filename = [fileNames(k).name];
I = imread(filename);
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我不知道如何单独保存和imread每一个.有人知道我该怎么办?非常感谢提前,
我有一个8位灰度图像具有不同的值(0,1,2,3,4,...,255).我想要做的是用灰色,红色等颜色为灰度图像着色.到目前为止,我一直在进行这种着色,但仅限于灰度.我怎么能用实际颜色做到这一点?
这是我到目前为止编写的代码.这是我在搜索图像中所有白色值并用深灰色替换它们的地方:
for k = 1:length(tifFiles)
baseFileName = tifFiles(k).name;
fullFileName = fullfile(myFolder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
imageArray = imread(fullFileName);
%// Logic to replace white grayscale values with darkish gray here
ind_plain = find(imageArray == 255);
imageArray(ind_plain) = 50;
imwrite(imageArray, fullFileName);
end
Run Code Online (Sandbox Code Playgroud) 我不知道怎样才能正确地提出这个问题.希望你能明白我的意思.我在Matlab中有一个代码,我有不同的流程.例如,如果我使用一些图像(例如,*.bmp),我必须在Matlab中运行一些代码,如果我有另一种类型的图像(*.jpg),我想运行另一部分代码.
但是,我想要做的是,在代码的开头,Matlab会询问"什么样的图像?" (例如,使用命令'disp),然后我会写'bmp'或'jpg'并运行相关代码.我不喜欢使用循环,只是"写"这个词,它可以识别过程.
我该怎么做?
我有一个关于如何将矢量复制到另一个矢量的简单问题.我有一个长度为66x1的向量,然后是另一个长度为2151x1的向量.我想将第一个中的值复制到另一个中的准确位置.我试过了,但它不起作用.
inter = 66x1 out = 2151x1
for i=1:numel(inter)
out(101:167)= inter(i)
end
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
for inter=(1:66);
out(101:167)=inter;
end
Run Code Online (Sandbox Code Playgroud)
还有这个:
for k= (101:167)
out(k)=inter(1:66);
end
Run Code Online (Sandbox Code Playgroud)
我做错了吗?提前致谢,
我有一个问题,关于如何在循环的每次迭代中使用不同的值.我有145个乐队的图像.我计算大小,行数,列数和波段数
size=size(HYP);
nrow= size(1);
ncolu= size(2);
nbands= size(3);
Run Code Online (Sandbox Code Playgroud)
我必须为每个波段做一个操作,然后获得结果,但我不知道如何为每次迭代自动更改其中一个值.我将尝试简化问题.这是我的循环.之前定义了值rad1.我需要在每个循环上使用之前定义的某个值(例如,band2值rad2,band3 rad3 ......)并为每个循环提取结果(nd1自动更改为nd2等)
output= zeros(nrow,ncolu,nbands);
for banda=1:nbands;
nd1= -((3.141592*rad1)/-HYP2(:,:,1));
output(banda,1)= (nd1);
end
end
Run Code Online (Sandbox Code Playgroud)
所以,对于第一次迭代:
nd1 = - ((3.141592*rad1)/ - HYP2(:,:,1)); 输出(banda,1)=(nd1);
对于第二......
nd2 = - ((3.141592*rad2)/ - HYP2(:,:,2)); 输出(banda,2)=(nd2);
之前定义了Rad1,rad 2 ... rad145等.最后,输出将是145波段矩阵.
你知道我怎么办吗?非常感谢提前,