有没有更好的放大图片的算法
本帖最后由 win8 于 2022-3-14 21:34 编辑先回顾一下几种经典插值算法
1. nearest/最邻近。假设一个图片是3*3的,那么如果放大4倍,也就是变成12*12,那么直接把每个像素的内容直接横向复制4次,纵向复制4次,占用16个像素的位置,就完成放大了。这样放大的结果是边缘非常锐利,没有额外的信息,有颗粒感。当然颗粒感是特性,不是缺点。由于12*12的图非常小,根本看不清细节;为了避免浏览器放大图像造成干扰,这里的每一个图片我都使用nearest算法放大了50倍。
2. bilinear/两次线性:对上述的颗粒感做了改善,假设还是3*3图片放大3倍,原我们把相邻的两个像素之间沿着横竖两个方向做做线性的过渡,颗粒感减弱了,但是看上去非常模糊。同样,这个模糊也是特性,不是缺点。
3. bicubic/两次立方:如果过渡的算法不使用线性回归,是不是就可以避免bilinear的模糊感了呢?是的,bicubic就是这样做的,通过横向竖向4*4=16个像素进行回归运算,减少了颗粒感,同时保留了清晰的内容。缺点也很明显,相比前两种插值算法,运算量极大的上升了。
4. sinc算法(最为典型的是Lanczos插值),用更多的像素运算,拥有比bicubic更优秀的过渡。
但是,无论如何,他们和理想的彩色线条都相去甚远。
所以有没有更好的软件或者开源算法呢?至少能让红色区域组成连续的颜色一致就像这样
当然大家都知道AI放大的概念,但是能不能给出实际跑一个放大的效果出来康康?
草 论坛上传图片有毒,附件的图片我按图传,会自动变色...
https://s3.bmp.ovh/imgs/2022/03/da7768359b2b20ad.png
本帖最后由 Sza 于 2022-3-14 22:58 编辑
下面的图都是原图放大了16倍
CUnet
Photo
RGB
UpPhoto
UpResNet10
UpRGB
waifu2x使用不同模型,无降噪。如果它的训练集用的是像素图放大,效果会更好。 不是,你这例子也太不合适了,如果原来是理想的斜线条,那采样成栅格不会是原来的几个颜色,反过来说如果栅格化后是255,0,0的纯色,那在有限的取值范围内最邻近才是最接近真实的解 ngu
—— 来自 S1Fun 试试wallhaven? gigapixel
Sza 发表于 2022-3-14 20:58
下面的图都是原图放大了16倍
CUnet
总的来说线条都猜到了,但是色彩比较惨 ,线条不均匀(这个倒不是问题)
关键其实还是——应该目前还没有用像素直接放大的模型 混乱中立搅屎棍 发表于 2022-3-14 23:36
不是,你这例子也太不合适了,如果原来是理想的斜线条,那采样成栅格不会是原来的几个颜色,反过来说如果栅 ...
我想了下,其实我这个问题应该是如何把nearest缩小的图片还原回去。如果用nearest再次放大,显然是无法还原的。 楚轩 发表于 2022-3-14 23:52
ngu
—— 来自 S1Fun
ngu有单独放大图片的软件或者App嘛?不太好找… 本帖最后由 manysun 于 2022-3-15 13:14 编辑
没明白。如果原图不是斜线,就是9个方格经过nearest等比缩放来的,那么用nearest放大回去很合理啊,bilinear效果次之,越排后面的算法越失败
----------
哦不对,bilinear太糊了 这个原图信息量太小了,我觉得甚至你让人来看都不一定会认为它应当被放大为三条斜线,那自然很难有满足你的意图的算法 diffusion model
mimighost 发表于 2022-3-15 15:23
diffusion model
所以有现成的工具嘛? Hamming滤镜在这个测试里完美复合我的设想,附图是直接30倍放大效果
页:
[1]