图像基本变换---快速均值模糊算法
来源:互联网 发布:mac滴管粉底液色号 编辑:程序博客网 时间:2024/04/29 18:38
均值滤波很容易理解,直接给出C代码如下,欢迎交流:
void FastMeanFilter(unsigned char* srcData, int width, int height ,int stride, unsigned char* dstData,int radius)
{
if(radius == 0)
return;
if(radius > MIN2(width,height) / 2)
radius = (MIN2(width, height) / 2-0.5);
int unit = 4, t = 0, t1 = 0;
int i,j,k,len = width * height * unit;
int block = (radius << 1) + 1;
int winSize = block * block;
long sumB = 0, sumG = 0,sumR = 0;
unsigned char* pSrc = srcData;
int* temp = (int*)malloc(sizeof(int)* width * unit);
memset(temp,0,sizeof(int) * width * unit);
for(k = -radius; k <= radius; k++)
{
for(j = 0; j< width; j++)
{
t = j * unit;
t1 = abs(k) * stride;
temp[t] += pSrc[t + t1];
temp[t + 1] += pSrc[t + 1 + t1];
temp[t + 2] += pSrc[t + 2 + t1];
}
}
for (i = 0; i < height; i++)
{
sumB = sumG = sumR = 0;
for (j = -radius; j <= radius; j++)
{
t = abs(j) * unit;
sumB += temp[t];
sumG += temp[t + 1];
sumR += temp[t + 2];
}
for (j = 0; j < width; j++)
{
t = j * unit + i * stride;
dstData[t] = (sumB / winSize);
dstData[t + 1] = (sumG / winSize);
dstData[t + 2] = (sumR / winSize);
if (j < width - 1)
{
t = abs(j - radius) * unit;
t1 = (j + radius + 1) % width * unit;
sumB = sumB - temp[t] + temp[t1];
sumG = sumG - temp[t + 1] + temp[t1 + 1];
sumR = sumR - temp[t + 2] + temp[t1 + 2];
}
}
if (i < height - 1)
{
for (k = 0; k < width; k++)
{
t = k * unit + abs(i - radius) * stride;
t1 = k * unit + (i + radius + 1) % height * stride;
temp[k * unit] = temp[k * unit] - pSrc[t] + pSrc[t1];
temp[k * unit + 1] = temp[k * unit + 1] - pSrc[t + 1] + pSrc[t1 + 1];
temp[k * unit + 2] = temp[k * unit + 2] - pSrc[t + 2] + pSrc[t1 + 2];
}
}
}
free(temp);
};
- 图像基本变换---快速均值模糊算法
- 图像基本变换---图像快速高斯模糊算法
- 图像模糊--快速均值滤波
- 图像处理------快速均值模糊(Box Blur)
- 图像处理------快速均值模糊(Box Blur)
- 图像处理之快速均值模糊(Box Blur)
- 图像处理之快速均值模糊(Box Blur)
- 模糊C均值算法(FCM)分割图像MATLAB程序
- 图像快速处理算法II 距离变换
- 图像处理基本算法--仿射变换
- 图像处理基本算法 Hough变换
- 图像处理-基本算法之对数变换
- 图像处理-基本算法之指数变换
- 图像处理-基本算法之阈值变换
- 图像基本变换---Canny边缘检测算法
- 图像基本变换---KMeans聚类算法
- 均值滤波快速算法
- 图像基本变换---图像亮度对比度调增算法
- caffe的层结构可视化工具
- js/jQuery判断浏览器名称、内核版本、浏览器壳
- memcache经典介绍
- 按钮,下一个或者上一个
- Spring Boot普通类调用bean
- 图像基本变换---快速均值模糊算法
- ViewPagerIndicator
- 图像基本变换---图像伪色彩
- SlidingMenu 点击其中一个的时候,就自动的选择栏消失
- 五子棋棋型源码
- 侧滑和主界面的Fragment搭建
- 关于 Mysql innodb的索引
- 图像基本变换---图像快速高斯模糊算法
- axes对象的句柄会消失,即首次调用有效,第二次就出现