应用阈值蒙版
我正在matlab中进行图像压缩。
在我对图像应用 DCT 并且有 img 矩阵之后,我想在该矩阵上应用阈值掩模。
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
maskedImg = blkproc(img,[8 8],mask );
我使用了该函数,但它不起作用,并且收到错误消息:
Error in ==> blkproc 位于 67 [a、块、边框、乐趣、参数、padval] = parse_inputs(varargin{:});
i am making image compression in matlab.
After i applied DCT on image and i had img matrix, i want to apply a threshold mask on that matrix.
mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
maskedImg = blkproc(img,[8 8],mask );
I used that function but it didnt work and i get error message:
Error in ==> blkproc at 67
[a, block, border, fun, params, padval] = parse_inputs(varargin{:});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据最新的
Matlab
文档;最接近的 blockproc 语法(适合您的情况)是B = blockproc(A,[MN],fun)
。所以显然你的mask
确实应该是一个函数!但是,我记得
blkproc
已经是一个有效的Matlab
函数一段时间了,因此通过键入(在命令行中)仔细检查调用它的正确方法>>>帮助blkproc。 (不过,我非常有信心它将与 blockproc 共享调用签名[在这种情况下])。
According to latest
Matlab
documentation; closest blockproc syntax (for your case) isB = blockproc(A,[M N],fun)
. So apparently yourmask
really should be a function!However, I recall that
blkproc
has been a validMatlab
function for a while ago, thus double check the proper way to call it by typing (in the command line)> help blkproc
. (Al tough I'm quite confident that it will share the calling signature withblockproc
[in this case]).