Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中编写文本文件_Matlab_Image Processing - Fatal编程技术网

在matlab中编写文本文件

在matlab中编写文本文件,matlab,image-processing,Matlab,Image Processing,我想对图像进行一些操作,并将一些数据写入txt文件- clc; image=imread('im.png'); .... %do some operations .... .... fileID=fopen('first.txt','w'); .... %write onto the txt file .... fclose(fileID); 但我想对许多图像执行此操作。我已将所有图像存储在一个文件夹中。此外,我还想在上一个图像停止后立即继续在同一文本文件中写入。如何修改代码以实现此目的?这

我想对图像进行一些操作,并将一些数据写入txt文件-

clc;
image=imread('im.png');
.... %do some operations
....
....
fileID=fopen('first.txt','w');
....  %write onto the txt file
....
fclose(fileID);

但我想对许多图像执行此操作。我已将所有图像存储在一个文件夹中。此外,我还想在上一个图像停止后立即继续在同一文本文件中写入。如何修改代码以实现此目的?

这很简单。在所有图像上使用循环,对其进行处理,然后附加到文本文件中。更简单的方法是,只需打开一次文本文件,编写尽可能多的图像,然后最终关闭它

大概是这样的:

folder = ...; %// Place folder here - Example: folder = fullfile('D:', 'images'); 
fileID=fopen('first.txt','w'); %// Open up the file for writing
f = dir(fullfile(folder, '*.png')); %// look for all PNG files in this folder
for idx = 1 : numel(f)
    filename = fullfile(folder, f(idx).name); %// Get the file name
    im = imread(filename); %// Read the image in
    .... %do some operations
    ....
    ....

    ....  %write onto the txt file
    ....
    fprintf(fileID, '\n\n'); %// Put two carriage returns to make way for next file
end
fclose(fileID);
该函数扫描与特定表达式匹配的所有文件。在您的情况下,您希望在您选择的特定文件夹中查找所有PNG文件。我假设它存储在变量
文件夹中
。然后,在对图像执行任何操作之前,我们首先打开文件,然后使用
dir
遍历找到的每个图像。请注意,当您使用
dir
时,它只查找文件的相对路径(即仅查找名称本身)。如果要定位实际图像所在的位置,需要绝对路径,这就是我们使用的原因

因此,对于文件夹中的每个PNG图像,加载它,对其进行处理,写入文件,我确保我放入两个回车符来分隔每个结果。对每个PNG图像重复此操作,直到从文件夹中取出所有图像。完成后,关闭文本文件

小调
是MATLAB中的一个实际函数,它将值矩阵可视化为具有指定颜色贴图的图像。您可能应该将此变量重命名为其他变量,以便在您编写的其他脚本/函数使用此函数时不会使函数黯然失色。

谢谢,但我有疑问。文件夹必须是这样的-
folder='D:\images'
folder='D:\\images'
?@LifeIsGood-这就是
fullfile
的美妙之处。您可以这样做:
folder=fullfile('D:','images')
通过这种方式,无论您选择运行代码的操作系统是什么,都会自动处理“斜杠”处理。奇怪的是,如果我有png和jpeg文件,我应该这样做吗-
f=dir(fullfile(文件夹,'*.png','*.jpg')
@LifeIsGood-啊,如果你想要两个,你需要分别为它们调用
dir
,然后将它们连接在一起。请看以下帖子:。MATLAB的
dir
命令不支持搜索多种类型的文件。它要么是一种类型,要么是文件夹中的每个文件。如果您想要两个文件,您可以使用两个
dir
调用,然后将结果连接在一起,并运行一个
for
循环。@LifeIsGood-BTW,感谢您的接受!如果两种型号的变型不能工作,请告诉我。如果没有,我可以修改上面的帖子。