问题描述
- 100*100像素的bmp图片缩小为20*30大小的bmp图片是怎样的原理 ?
- 百度的答案好像说是涉及傅里叶算法,没有搞明白,求大神说明原理,是相邻的几个像素
平均成一个像素?
解决方案
这类算法很多,基本原理是“映射”。就是说这个算法定义了如何把一个像素点映射到目标像素点。
比如一个10x10的图片,你想把它拉成20x20的图片,你可以设计一个最简单的算法,把(x,y)【x,y从1开始】映射到(2x-1,2y-1)(2x-1,2y)(2x,2y-1)(2x,2y)这四个点。
解决方案二:
下采样技术有很多中,你说的频域变换是其中一种,当然最简单的是对缩小后图像的每个像素值从原图像中的一个窗口中求评价来算,类似windows缩略图
解决方案三:
算法很多。建议直接搜索图像缩放算法。
如果要直接用来图片处理用最快的。
解决方案四:
最简单的做法是直接采样,就是比如横行,新的图像的每个像素采用原始图像每5个像素的那个像素,丢弃别的像素。
当然效果可能不理想,比如说图片中有个污点,正好位于采样的位置,那么这么一来,那个污点被放大了5倍。
别笑这种蠢笨的方法,虽然简陋但是也不是不可以接受,windows xp上的画图(win7好像改了)的缩放就是这么做的。
为什么用插值,用傅氏变换,无非就是将原始图像的所有像素都拿来参与计算,得到一个平滑的,包含全部像素点的采样,这样得到的图像可以包含更多的信息,更接近原始的图像。
傅氏变换的原理是频域的转换。
时间: 2024-09-16 17:59:26