Matlab 从块返回到图像+;blockproc
我需要可视化blockproc的输出。我使用此函数获取所有块的标签。现在,我想将图像中的每个块设置为输出中相应的标签 代码如下:Matlab 从块返回到图像+;blockproc,matlab,Matlab,我需要可视化blockproc的输出。我使用此函数获取所有块的标签。现在,我想将图像中的每个块设置为输出中相应的标签 代码如下: Feature = blockproc( image , [ 8 8 ] , fun ); %where image is a binary image and fun gives 1 label either 0 or 1 to each block %% Now for each block I want to do the reverse - set the
Feature = blockproc( image , [ 8 8 ] , fun );
%where image is a binary image and fun gives 1 label either 0 or 1 to each block
%% Now for each block I want to do the reverse - set the corresponding image coords to
%% the feature output
我想我可以调用另一个blockproc,它将图像设置为相应的特征值。但我做这件事有困难
%% fun = @(block_struct) block_struct.data = Feature ( counter ) // counter = block no.
有什么方法可以执行上述操作吗?如果您的
fun
获取一个块并返回一个标签,您可以让它返回一个与输入大小相同的块,如中所示
然后,您的功能
将与原始图像大小相同
或者,您可以只调整输出大小-使用imresize
和nearest
或者这样做:
Feature2 = kron(Feature, ones(8));
问题是您的初始函数为每个块返回一个值,因此
功能
的大小与图像
的大小不同,但您希望是这样吗?不,我只想可视化输出。我知道,功能块的大小将取决于块的数量。因此,对于128 X 128图像,我将有256个8X8大小的块,每个块只有一个标签。现在,我想从这些块重建图像,将每个块设置为标签值。这不是真正的“重建”如果您只需要调整输出的大小。@nkjt称之为调整大小:)我的初始图像也是一个二进制图像,因此我希望它将是一个排序的重建…标签可以是1或0,因此第二种方法不起作用。你建议的第一件事可能行得通。我会在接受之前检查一下……你知道克朗做什么吗?如果没有,也许你应该先检查一下,然后再告诉我这是行不通的。少一点敌意会很感激的。我不想说任何负面的话。我不得不通过将第一个函数与实际标签相乘来调整它,它成功了。谢谢你的努力……好吧,如果你在告诉我代码不起作用之前先测试一下代码,我将不胜感激。提示:ones(8)
只是用于复制块大小,与标签值无关。
Feature2 = kron(Feature, ones(8));