MATLAB分块处理大图像及调整图像分辨率
(2015-01-23 14:17:34)
标签:
it教育 |
分类: MATLAB |
转载自:http://www.matlabsky.com/thread-11783-1-1.html
类似常用的函数有imresize(),对图像做缩放处理。参考:
类似常用的函数有imresize(),对图像做缩放处理。参考:
http://blog.sina.com.cn/s/blog_13dd6d82a0102vb2r.html
MATLAB分块处理矩阵的函数很早就有了——blkproc,但缺点是blkproc必须一次性把要处理的矩阵全部导入内 存中,这样大大限制了其应用范围,对一些超大型的图像就无能为力了。幸运的是随着MATLAB使用范围越来越 广,Mathworks也紧跟用户需求,新版本的MATLAB推出了可以处理任意大图像的函数blockproc,其用法如 下: A是要处理的图像矩阵,如果图像太大不能完全导入内存,也可以用图像文件名src_filename来表示。[M,N]是 希望每次分块处理的矩阵大小,fun是函数句柄,即对每块矩阵的处理函数。 需要说明的是blockproc默认支持tiff/tif和jpeg2000格式的任意大图像处理,如果要读取其他格式的大图像需要 针对该图像格式再写一个继承自MATLAB中ImageAdapter这个抽象类的子类adapter,来满足blockproc的输入 要求。MATLAB帮助文档中有一个读取lan格式的LanAdapter示例类,大家可以参照那个格式来构造任意图像 格式的Adapter类来实现blockproc函数对任意大图像文件的支持。 最后一种调用格式可以实现读取大图像文件,分块处理后再在指定路径写入处理后的图像文件,这个非常有用。 下面给一个简单的例子,更多的用法希望大家讨论完善。 可以看到分块处理后的效果,当然这是简单的把原图像分块(每一子块大小16*16)复制了25倍后的效果。 |
前一篇:行人检测最新论文介绍