图像处理 |
您所在的位置:网站首页 › 哪个不是图形图像处理软件 › 图像处理 |
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-7.html 在计算机图像处理和计算机图形学中,图像缩放(image scaling)是指对数字图像的大小进行调整的过程。图像缩放是一种非平凡的过程,需要在处理效率以及结果的平滑度(smoothness)和清晰度(sharpness)上做一个权衡。当一个图像的大小增加之后,组成图像的像素的可见度将会变得更高,从而使得图像表现得“软”。相反地,缩小一个图像将会增强它的平滑度和清晰度。 图像缩小 图像缩小是通过减少像素个数来实现的,因此要根据缩小的尺寸,从原图像中选择合适的像素点,使图像缩小后可以保持原有图像的特征。图像缩小的算法有很多,这里主要介绍和实现两种算法:等间隔采样、局部均值。 基于等间隔采样的图像缩小算法 等间隔采样其实就是在原图中每间隔一定的距离取像素点放到输出图像上。设原图的大小为W*H,宽度和长度的缩小因子分别为看k1和k2,那么采样间隔为:W/k1,W/k2.也就是说在原图的水平方向每隔W/k1,在垂直方向每隔W/k2取一个像素。长和宽的缩小因子k1和k2相等时,图像时等比例缩小,不等时是不等比例缩小,缩小图像的长和宽的比例会发生变化。 算法的实现步骤: (1)计算采样间隔 设原图的大小为W*H,将其放大(缩小)为(k1*W)*(K2*H),则采样区间为 ii=1/k1; jj=1/k2; 当k1==k2时为等比例缩小;当k1!=k2时为不等比例放大(缩小);当k11时图片放大。 (2)求出放大(缩小)后的图像 设原图为F(x,y)(i=1,2, ……W; j=1,2,……H),放大(缩小)的图像为G(x,y)(x=1,2, ……M; y=1,2,……N,其中M=W*k1,N=H*k2),则有 G(x,y) = f(ii*x, jj*y)
代码实现: //图像缩小—等间隔采样 参数:原图 x轴缩放比例 y轴缩放比例 Mat ZoomOutEqualInterval(Mat& src, double x_k,double y_k) { Mat dst(src.rows*y_k, src.cols*x_k, src.type(), Scalar(0)); x_k = 1 / x_k;//将缩小率转换为采样间隔 y_k = 1 / y_k; cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |