Matlab 图形用户界面(gui)中带有网格线的图像转换为一个文本文件,其中包含网格的N×M尺寸和绘制的点

Matlab 图形用户界面(gui)中带有网格线的图像转换为一个文本文件,其中包含网格的N×M尺寸和绘制的点,matlab,user-interface,text,graph,grid,Matlab,User Interface,Text,Graph,Grid,我的gui中有一个添加了网格线的图像。我需要能够创建并保存一个文本文件,其中包含网格中每个框的内容的图形的N×M维 有办法做到这一点吗?这里是一个例子 主文件 这应该是主脚本 鼠标点击 对于脚本回调,我建议使用脚本而不是函数来避免范围等的复杂性 从文件读取结果 res = dlmread('GridBox.dat') 你的问题有点不清楚。您有一个图像,然后它被分成相等的部分(网格),然后您希望将图像的这些部分写入单独的文件中。这是你的问题吗?我想把整个网格写入一个文本文件。该文件应包括空间的空

我的gui中有一个添加了网格线的图像。我需要能够创建并保存一个文本文件,其中包含网格中每个框的内容的图形的N×M维

有办法做到这一点吗?

这里是一个例子

主文件 这应该是主脚本

鼠标点击 对于脚本回调,我建议使用脚本而不是函数来避免范围等的复杂性

从文件读取结果

res = dlmread('GridBox.dat')

你的问题有点不清楚。您有一个图像,然后它被分成相等的部分(
网格
),然后您希望将图像的这些部分写入单独的文件中。这是你的问题吗?我想把整个网格写入一个文本文件。该文件应包括空间的空白位置和填充位置。将网格另存为NxM零矩阵(您知道网格的尺寸)。将网格中的每个框视为矩阵的索引。最初,所有框都由用户解锁,因此所有索引都为零。但当用户单击一个框时,相应的矩阵索引将为1,而所有其他索引仍然为0。一旦你得到矩阵,你就可以把它写在一个文本文件中。因此,基本上,文本文件将是一个0和1的NxM矩阵-表示网格。您可以从中的
CurrentPoint
ButtonDownFcn
开始阅读。要将矩阵写入文件,请使用。我仍然不知道该如何操作。是否有方法更改单击的网格正方形的颜色并用其他颜色复制它?如果是这样的话,让我们假设你用一种类型的按钮点击或者gui上的一些东西来制作一些红色的框,你能让其他颜色的网格框在矩阵上代表一个不同的数字吗。也就是说,1,2,3。。。等
Clicked = fliplr((get(fig_h, 'CurrentPoint') - Image_Pos(1:2))./Image_Pos(3:4));

if ~sum(Clicked < 0) && ~sum(Clicked > 1) % If inside of the image is clicked

    % Find the corresponding matrix index
    ind = num2cell(ceil(Clicked.*Grid_Size));
    % and toggle that element
    if Grid_Matrix(ind{:}) == 0
        Grid_Matrix(ind{:}) = Grid_Type;
    else
        Grid_Matrix(ind{:}) = 0;
    end

    % Show the result to user
    delete(grid_h); % delete the previous grid image
    % resize the Grid Matrix to the image size
    Grid_Matrix_rs = imresize(flipud(Grid_Matrix), im_size, 'box');
    Grid_Matrix_rgb = label2rgb(Grid_Matrix_rs, 'spring', 'b');
    grid_h = imshow(Grid_Matrix_rgb);
    set(grid_h, 'HitTest', 'Off');
    set(grid_h, 'AlphaData', 0.3); % Show the grid image with an opacity

    % Write data to file after each update (user click)
    dlmwrite('GridBox.dat', flipud(Grid_Matrix));
end
4,0,3,0,2
0,1,0,0,0
3,0,1,0,4
2,0,2,1,0
0,0,3,0,0
res = dlmread('GridBox.dat')