首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Matlab中是否有块的替代物?

在Matlab中是否有块的替代物?
EN

Stack Overflow用户
提问于 2012-06-28 03:37:13
回答 2查看 3.8K关注 0票数 5

我一直在使用blockproc对图像进行分块处理。不幸的是,blockproc是图像处理工具箱的一部分,我在个人计算机上没有它。

base中是否有一些函数可以替代blockproc

我最初的猜测是使用im2col将每个块转换为列,然后使用arrayfun处理每个列。然后我意识到im2col也是图像处理工具箱的一部分,所以这并不能解决我的问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-29 15:20:27

下面是一个使用MAT2CELL的示例。它将图像划分为not M块,并在图像大小不能被块数整除的情况下处理。

代码语言:javascript
运行
复制
%# 2D grayscale image
I = imread('coins.png');

%# desird number of horizontal/vertical tiles to divide the image into
numBlkH = 4;
numBlkW = 4;

%# compute size of each tile in pixels
[imgH,imgW,~] = size(I);
szBlkH = [repmat(fix(imgH/numBlkH),1,numBlkH-1) imgH-fix(imgH/numBlkH)*(numBlkH-1)];
szBlkW = [repmat(fix(imgW/numBlkW),1,numBlkW-1) imgW-fix(imgW/numBlkW)*(numBlkW-1)];

%# divide into tiles, and linearize using a row-major order
C = mat2cell(I, szBlkH, szBlkW)';
C = C(:);

%# display tiles i subplots
figure, imshow(I)
figure
for i=1:numBlkH*numBlkW
    subplot(numBlkH,numBlkW,i), imshow( C{i} )
end

输入图像和生成的瓷砖:

票数 8
EN

Stack Overflow用户

发布于 2012-06-28 08:52:48

mat2tilescellfuncell2mat一起做blockproc所做的事情,不是吗?

您可以自己编写一个包装器,让它使用与blockproc相同的参数,我认为应该不难做到。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11238828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档