首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用colfilt加速计算时出现错误

使用colfilt加速计算时出现错误
EN

Stack Overflow用户
提问于 2015-11-30 06:16:07
回答 1查看 81关注 0票数 0

我正在尝试使用colfilt执行滑动邻域操作。我基本上是在运行一些函数的同时,在图像上运行2X2窗口:

代码语言:javascript
复制
f = @(x,y) (func(diff(x:x+1,y:y+1),s(x:x+1,y:y+1)));
e = colfilt(img, [2 2], 'silding', f);

其中diff和s与img大小相同(以各种方式计算的响应)。func是一个在diff和s上执行一些计算的函数。

我一直收到这个错误:

代码语言:javascript
复制
Matrix dimensions must agree.

Error in colfilt (line 133)
    if all(block>=size(a)), % Process the whole matrix at once.

Error in create_e (line 14)
e = colfilt(img, [2 2], 'silding', f);

任何想法都将不胜感激。非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2015-11-30 16:00:04

我认为你想要使用一个不同的函数nlfilter,或者你需要调整你的函数,因为你似乎假设你的函数的输入是一个2乘2的数组。

colfilt将每个块重塑为nElementsInBlock-by-1数组,并将它们排列在nElementsInBlock-by-nBlocks数组中,以便您可以在单个步骤中计算函数(例如,峰度)。

nlfilter在滑动窗口上应用函数,将每个块作为n×m数组传递给用户定义的函数。

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

https://stackoverflow.com/questions/33988793

复制
相关文章

相似问题

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