如何把图像放大到原来的1.5倍

最邻近插值算法和双线性插值算法——图像缩放

...如果原图为5*5,缩放后的图为3*3,那么缩放后的图的像素点(1,1)对应的就是原图中([5/3 * 1], [5/3 * 1]) = ([0.6], [0.6]) = (1,1) 像素点对应的像素值...

图像插值算法总结

...自适应的方法可以根据插值的内容来改变(尖锐的边缘或者是平滑的纹理),非自适应的方法对所有的像素点都进行同样的处理。 非自适应算法包括:最近邻,双线性,双三次,样条,sinc,lanczos等。... 

"图像缩放功能的插值算法 Jason", 在 Matlab 下对图像分别采用最近邻插值、双线性插值、三次插值 3 种算法进行 0. 5 倍、3 倍缩放,对这 3 种算法实现的缩放效果和原图做出比较。

"Understanding Bilinear Image Resizing", The function bilinear_resize uses python for loop, which runs very slow. We can take advantage of numpy's vectorized computation on arrays to speed it up.

如何绘制背景透明的图片?

 

 

transColor = pygame.Color(255, 0, 255)
image = pygame.image.load(playerPath + "idle.png").convert()
image.set_colorkey(transColor)

但内部如何实现呢?起码用C在for循环里逐像素判断,没有想象中的那么慢。硬件(显卡)好像是类似这么干的。

另一种方法是用掩码。先and造个有洞的,再or上去。需要两张图片。像gif或png这样可以指定透明颜色,比较方便。也许可以根据透明颜色生成掩码…… 那还是有个for循环,只是把if pixel == colorkey换成了pixel &= mask; pixel |= pic而已。现在CPU好像不是非常怕jmp了,行话好像叫branch(分支)。

 

posted @ 2021-12-04 16:56  华容道专家  阅读(462)  评论(0)    收藏  举报