小编use*_*688的帖子

在Matlab中读取文件夹上的多个图像

我在从一个文件夹中读取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每一个.有人知道我该怎么办?非常感谢提前,

file-io matlab image

5
推荐指数
2
解决办法
8863
查看次数

在MATLAB中为8位灰度图像着色

我有一个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)

rgb matlab image colors image-processing

1
推荐指数
1
解决办法
1796
查看次数

在Matlab中运行代码的不同部分

我不知道怎样才能正确地提出这个问题.希望你能明白我的意思.我在Matlab中有一个代码,我有不同的流程.例如,如果我使用一些图像(例如,*.bmp),我必须在Matlab中运行一些代码,如果我有另一种类型的图像(*.jpg),我想运行另一部分代码.

但是,我想要做的是,在代码的开头,Matlab会询问"什么样的图像?" (例如,使用命令'disp),然后我会写'bmp'或'jpg'并运行相关代码.我不喜欢使用循环,只是"写"这个词,它可以识别过程.

我该怎么做?

matlab

0
推荐指数
1
解决办法
627
查看次数

复制矢量到Matlab中的矢量

我有一个关于如何将矢量复制到另一个矢量的简单问题.我有一个长度为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)

我做错了吗?提前致谢,

matlab vector

0
推荐指数
1
解决办法
4697
查看次数

在Matlab上更改循环内的值

我有一个问题,关于如何在循环的每次迭代中使用不同的值.我有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波段矩阵.

你知道我怎么办吗?非常感谢提前,

matlab loops

0
推荐指数
1
解决办法
757
查看次数

标签 统计

matlab ×5

image ×2

colors ×1

file-io ×1

image-processing ×1

loops ×1

rgb ×1

vector ×1