为何同尺寸resize后的双三次插值图像与原图像完全一致?
为什么两个图像对象完全相同?
嘿,我来帮你搞懂这个问题~
核心原因其实很简单,你看代码里的关键操作:
- 你先把同一张图片
1.jpg分别打开到了im和im_bicubic两个变量里,这时候它们本来就是完全一样的 - 然后你获取了原图像的宽高
wei, hei,接着对两个图像执行了resize((wei,hei), ...)——这里你是把图像缩放到和它本身完全相同的尺寸啊!
插值算法(比如你用的PIL.Image.BICUBIC)的作用是什么?它是在图像尺寸发生变化的时候才会生效的——比如把小图放大、大图缩小,这时候需要通过插值来补充新的像素或者合并现有像素。但如果输入和输出的尺寸完全一致,PIL根本不会对图像做任何像素层面的修改,不管你指定哪种插值模式都没用。所以im和im_bicubic自然还是完全相同的,保存出来的文件也没区别。
如果想看到插值方法的差异,你可以试试修改resize的尺寸,比如改成放大两倍:
im = im.resize((wei*2, hei*2), 0) im_bicubic = im_bicubic.resize((wei*2, hei*2), PIL.Image.BICUBIC)
这时候再保存对比,就能看到不同插值处理后的图像差异啦~
内容的提问来源于stack exchange,提问作者ONION
相关产品推荐
相关产品推荐

