图像放大算法(马赛克效果)
2009-10-11 10:05
204 查看
图像放大即把较小的图像绘制在较大的空白图像上。这只介绍马赛克效果的原理以及模拟实现。
上图可以看出,马赛克效果的图像放大就是原始像素点的放大。
模拟实现算法:
C#:
class Program
{
static void Main(string[] args)
{
int[,] a = new int[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
Print(Enlarge(a, 4));
}
static int[,] Enlarge(int[,] src, int zoom)
{
if (zoom < 1)
{
throw new IndexOutOfRangeException("放大倍数不能小于1");
}
if (zoom == 1)
{
return src;
}
int[,] dst = new int[src.GetLength(0) * zoom, src.GetLength(1) * zoom];
for (int i = 0; i < dst.GetLength(0); i++)
{
for (int j = 0; j < dst.GetLength(1); j++)
{
dst[i, j] = src[(i / zoom) % (zoom * zoom), (j / zoom) % (zoom * zoom)];
}
}
return dst;
}
static void Print(int[,] array)
{
for (int i = 0; i < array.GetLength(0); i++)
{
Console.WriteLine("");
for (int j = 0; j < array.GetLength(1); j++)
{
Console.Write(" " + array[i, j]);
}
}
}
}
如果要实现更逼真的图像放大效果,原始图像相邻两个像素点放大后它们之间可用两个像素点的过度色进行填充,也就是插值算法,有二次插值和多次插值等,其实质可以是贝塞尔曲线算法或其他近似算法。图像放大如果没有特殊算法的优化,生成的图像不可避免的变地模糊或出现马赛克。
上图可以看出,马赛克效果的图像放大就是原始像素点的放大。
模拟实现算法:
C#:
class Program
{
static void Main(string[] args)
{
int[,] a = new int[,] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } };
Print(Enlarge(a, 4));
}
static int[,] Enlarge(int[,] src, int zoom)
{
if (zoom < 1)
{
throw new IndexOutOfRangeException("放大倍数不能小于1");
}
if (zoom == 1)
{
return src;
}
int[,] dst = new int[src.GetLength(0) * zoom, src.GetLength(1) * zoom];
for (int i = 0; i < dst.GetLength(0); i++)
{
for (int j = 0; j < dst.GetLength(1); j++)
{
dst[i, j] = src[(i / zoom) % (zoom * zoom), (j / zoom) % (zoom * zoom)];
}
}
return dst;
}
static void Print(int[,] array)
{
for (int i = 0; i < array.GetLength(0); i++)
{
Console.WriteLine("");
for (int j = 0; j < array.GetLength(1); j++)
{
Console.Write(" " + array[i, j]);
}
}
}
}
如果要实现更逼真的图像放大效果,原始图像相邻两个像素点放大后它们之间可用两个像素点的过度色进行填充,也就是插值算法,有二次插值和多次插值等,其实质可以是贝塞尔曲线算法或其他近似算法。图像放大如果没有特殊算法的优化,生成的图像不可避免的变地模糊或出现马赛克。
相关文章推荐
- 图像放大算法(马赛克效果)
- GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 图像美容之眼睛放大算法
- canvas图像处理实现马赛克效果
- 图像放大算法
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果(速度可实时)
- GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果
- 图像处理算法之瘦脸及放大眼睛
- 图像增强算法效果评价指标及实现
- hq2x算法放大灰度图像,如何优化?
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果。
- 图像放大算法概述
- 十三种基于直方图的图像全局二值化算法原理、实现、代码及效果(转)
- 图像放大算法
- 图像放大算法
- 基于灰度世界、完美反射、动态阈值等图像自动白平衡算法的原理、实现及效果