- 博客(16)
- 资源 (8)
- 收藏
- 关注
原创 Deblocking
最近花时间弄了一下deblocking算法,总体效果不错,速度也还可以,下面给出几个结果:基本可以媲美MSU的smart deblocking
2014-01-14 20:51:30 2571 3
原创 Neon指令C模拟器
汇编最大的一个缺点在于没法实时进行调试,在编写汇编代码的时候很难做到一次正确,出现错误的时候很难定位错误的地方,尤其是在汇编代码量很长的时候。这样就造成了编写汇编的时候需要非常长的时间来进行调试,这种效率没法忍受。 为了能够解决这个问题,考虑可以用c语言来模拟汇编的编写。基本思想是用c语言的函数来模拟汇编指令函数,并且结合汇编寄存器的一些特点,定义c语言中相对应的数据结构。这样,先
2013-10-18 13:48:46 2278
原创 滤镜之纹理Texture特效
很多图像或者视频上叠加上一些特定的纹理,那么这些纹理是怎么产生的呢?这里牵涉到一个叫做柏林噪声函数的概念,具体的可以参考:http://wenku.baidu.com/view/a6280c2bbd64783e09122b89.html 如这个纹理的产生就是通过柏林噪声产生的: 柏林噪声函数包括噪声参数函数和插值函数。噪声波有幅度和频率的概念,将这些不同
2013-10-17 22:14:42 2335 1
原创 滤镜之变形Distort特效
一些扭曲Distort特效也在滤镜中比较常见,而且如果在视频拍摄的时候使用则一般会比较有趣,如在Mac电脑上的PhotoBooth软件拍摄就有很多变形的Effect。这里介绍几种特效包括有:挤压(pinch)、球面特效(Spherize)、漩涡(Swirl)、波浪(Wave)等,这几个特效在PhotoSprite软件中都有代码。其他的一些变形也可以根据公式写出来,写出自己独特的一些变形特效出来。
2013-10-17 20:54:34 2555
原创 滤镜之颜色特效
一些颜色特效也在滤镜中比较常见,而且如果在视频拍摄的时候使用则一般会比较有趣,这些滤镜一般不改变像素的位置,而只是在像素的颜色上做文章,这里参考了几个颜色滤镜如: 碧绿(Aqua)、棕褐色(Sepia)、冰冻(Ice)、熔铸(Molten)、暗调(Darkness)、对调(Subtense)、怪调(Whim)等。这些都比较简单,对RGB的一些简单操作就能够实现,无非可以理解为RGB的映射。
2013-10-17 09:14:29 5476 4
原创 滤镜之浮雕Emboss
首先看效果图: 这个算法是一个像素和它周围像素的差值加上一个灰度常数产生浮雕效果的图像。一般是和它左上方像素的差值为浮雕,是一种凸的效果,和右下角像素的差为雕刻,是一种凸的效果。代码中通过cos角度控制梯度方向。 这个滤镜在ImageStone这个软件中有完整代码,现在改写如下:#define PI 3.1415926535897932384626433832795
2013-10-16 21:01:38 2265 1
原创 滤镜之瓷砖TileReflect
首先看这两张效果图:这个滤镜在ImageStone这个软件中有完整代码,现在改写如下:#define PI 3.1415926535897932384626433832795struct Point{ float x; float y;};void TileRefelctRGB(unsigned char* pInput,unsigned
2013-10-16 14:35:36 1047
原创 滤镜之高斯噪声GaussianNoise
首先看这两张效果图: 图像加上高斯噪声非常简单了,每个像素点叠加上高斯噪声即可。同理也可以叠加上其他的噪声。具体可以参考GIMP代码 算法原理:1. 首先随机产生高斯噪声,可以是RGB同一个随机噪声,也可以是三通道不同的随机噪声。2. 将随机噪声的值叠加到像素中,并判断是否越界。 该算法存在一个参数:1. 噪声程度:越大则
2013-10-16 13:42:35 4576
原创 滤镜之毛玻璃FrostedGlass
首先看这两张效果图: 毛玻璃看上去是一些离散的点分布,而这些点是周围像素点的反映。所以需要用到随机值。 算法原理:1. 统计像素周围区域内的R、G、B的直方图,直方图横坐标是每个像素的灰度值,统计以及每个灰度值的强度2. 从直方图中随机选取一个灰度强度下的R、G、B的均值就是目标像素结果 该算法存在一个参数:1.
2013-10-16 11:26:48 2093
原创 滤镜之油画Oil Painting
首先看效果图: 油画我的理解是色彩比较重,而且会有一片一片区域的同样色彩,没有什么细节,灰阶降低,只表现为一些特定的色彩。算法上的原理如下:1. 统计每个像素领域半径中出现的R,G,B的直方图,以及灰度的直方图,该直方图的bin的大小是设定好的,由此可以统计出落在某个bin上的数量2. 统计直方图中出现次数最多的R、G、B的均值,就是最要这个像素的结果。
2013-10-16 10:58:43 4683
原创 滤镜之像素化Pixelate
像素化可以认为是马赛克,是比较常见的滤镜了,也是一个比较简单的滤镜。在很多的移动图像处理软件中都有这个功能,可以实现交互指定需要马赛克的地方。下图是实现的一些效果: 实现原理: 设定马赛克块的大小,统计每个块中所有像素的平均值,以平均值代替每个块中的像素值即是马赛克的效果。如8x8的块,将64个像素加起来求均值,将均值赋值给这个64个像素(每个块中的像素值都是一样的)。
2013-10-15 19:33:07 2146
原创 ARM和NEON指令
在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和armv8系列。芯片类型有:arm7、arm9、arm11、cortex系列。指令集有:armv5、armv6和neon指令。关于ARM到知识参考:http://baike.baidu.com/view/11
2013-10-15 17:37:51 56093 8
原创 Image Scaling
在图像处理技术中,图像缩放是一个比较常见和简单的算法。虽然说简单,但是如果要做到效果好而且速度快还是有一定难度的。最近有涉及到图像缩放的东西,对一些常用的算法进行一些简单的介绍和总结。 在移动上平台上,一般拍照的分辨率都非常大,要对拍照后的图像进行处理则非常耗时,一般需要进行下采样。如果下采样质量较差则会影响后处理的效果,所以要采用一种效率高和质量好的插值算法。 l
2013-10-15 15:45:25 2968
原创 锐化USM
锐化度是图像细节清晰度的一个属性。锐化是图像处理技术中比较常见的一种技术了,很多场合都需要使用到,用以提高图像或视频的清晰度。 USM锐化,USM是指Unsharp Masking,是指使用一个blurred,unsharp的原始图像的mask来进行锐化,一般的流程是:z(n,m)是校正信号,一般是原始图像的高频信息,体现为边缘,通过线性组合可以获得最终锐化后的结果。
2013-10-15 11:29:52 4748
原创 对比度增强CLAHE
一般的直方图均衡可以增强对比度,采用整张图像的像素进行相同的直方图变换,对像素分布均匀的效果较好,但是对图像中存在明显比其他区域或者暗的区域,效果较差。 AHE:使用局部直方图,每个像素通过其周边的一个矩形范围的像素的直方图进行均衡化,对于边界像素需要扩充,不是复制而是镜像。如果邻域矩形越大,对比度降低,越小,对比度增强。当某个区域中包含的像素非常相近,则直方图会非常尖锐,
2013-10-15 10:59:35 6386 1
原创 LIBJPEG
在一个项目中需要将一些图像数据保存成文件,出现的问题是数据量非常大,文件高达几百兆以及上G,所以需要对数据进行压缩,Google了一下,发现了LIBJPEG这个开源库,在项目中使用后效果非常好,文件一下子减小了很多。 http://www.ijg.org/是这个库的网站,从上面可以下载最新的源代码以及编译好的库,是一个Independent JPEG Group的组织(简称IJG
2012-09-10 15:23:25 1227
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人