中值滤波器代码(中值滤波器代码表)
admin 发布:2022-12-19 22:05 171
本篇文章给大家谈谈中值滤波器代码,以及中值滤波器代码表对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、怎样用MATLAB实现中值和均值滤波
- 2、使用C++代码完成 均值滤波器、中值滤波器、最大值滤波器、最小值滤波器分别对灰度图进行滤波
- 3、急求中值滤波的伪代码(300分)?
- 4、急求中值滤波器的matlab算法代码
怎样用MATLAB实现中值和均值滤波
中值滤波楼上答了,5*5的均值滤波代码 w2=fspecial('average',[5 5]); %% 先定义一个滤波器 h=imfilter(a,w2,'replicate'); %%让图像通过滤波器 imshow(h); imwrite(h,'8.jpg');
均值滤波是
I=medfilt2(a,[3 3],'symmetric')
可以在matlab中查询medfilt函数的用法,本例是使用3*3的滤波器采用镜像边界法做均值滤波。
使用C++代码完成 均值滤波器、中值滤波器、最大值滤波器、最小值滤波器分别对灰度图进行滤波
//中值滤波和均值大概这个样子
int nByteWidth=nWidth*3;
if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);
BYTE p[9],s;
int i,j;
for(y=1;ynHeight-1;y++)
{
for(x=3;xnWidth*3-3;x++)
{
//把一个像素周围的8个像素值分别赋值给p[0]到p[8]
p[0]=lpInput[x-3+(y-1)*nByteWidth];
p[1]=lpInput[x+(y-1)*nByteWidth];
p[2]=lpInput[x+3+(y-1)*nByteWidth];
p[3]=lpInput[x-3+y*nByteWidth];
p[4]=lpInput[x+y*nByteWidth];
p[5]=lpInput[x+3+y*nByteWidth];
p[6]=lpInput[x-3+(y+1)*nByteWidth];
p[7]=lpInput[x+(y+1)*nByteWidth];
p[8]=lpInput[x+3+(y+1)*nByteWidth];
//将p[0]到p[8]从小到大排列
for(j=0;j5;j++)
{
for(i=j+1;i9;i++)
{
if (p[j]p[i])
{
s=p[j];
p[j]=p[i];
p[i]=s;
}
}
}
//将各点的中值赋值给该像素
lpOutput[x+y*nByteWidth]=p[4];
}
//----------------------------------------
int sr,sg,sb;
int nByteWidth=nWidth*3;
if (nByteWidth%4) nByteWidth+=4-(nByteWidth%4);
for(y=1;ynHeight-1;y++)
{
for(x=1;xnWidth-1;x++)
{
p=x*3+y*nByteWidth;
sb=0;
sg=0;
sr=0;
for(y1=-1;y1=1;y1++)
for(x1=-1;x1=1;x1++)
{
//像素本身及其周围的八个像素(3X3窗口内的像素)的blue值之和
sb+=lpInput[(y+y1)*nByteWidth+(x+x1)*3];
//像素本身及其周围的八个像素(3X3窗口内的像素)的green值之和
sg+=lpInput[(y+y1)*nByteWidth+(x+x1)*3+1];
//像素本身及其周围的八个像素(3X3窗口内的像素)的red值之和
sr+=lpInput[(y+y1)*nByteWidth+(x+x1)*3+2];
}
//将red,green,blue值的平均值赋值给该像素
lpOutput[p+2]=sr/9;
lpOutput[p+1]=sg/9;
lpOutput[p]=sb/9;
}
}
急求中值滤波的伪代码(300分)?
unsigned char WINAPI GetMedianNum(unsigned char * bArray, int iFilterH,int iFilterW)
{
/* unsigned char m = mid(
mid(bArray[0],bArray[1],bArray[2]),
mid(bArray[3],bArray[4],bArray[5]),
mid(bArray[6],bArray[7],bArray[8]));
return m;*/
// 循环变量
int i;
int j;
int k;
// 中间变量
unsigned char bTemp;
int iFilterLen=iFilterH*iFilterW;
float average=0;//用于均值加速
//求均值
for (i=0;iiFilterLen;i++)
{
average+=bArray[i];
}
average=average/iFilterLen;
unsigned char pixel_mid;
pixel_mid=bArray[(iFilterH-1)/2*iFilterW+(iFilterW-1)/2];//滤波窗口中心的取中值前的像素值
if (abs(average-pixel_mid)10) //均值加速,其中“10”为原中值和均值之差,根据你的实际情况自行设置大小
//if(1) //不用均值加速时选此
{
//超快速中值法(本质就是伪中值法)
//行排列
if (0)
{
for (k = 0; k iFilterH; k ++)
{
for (j = 0; j iFilterH-1; j ++)
{
for (i = 0; i iFilterW-1-j; i++)
{
number++;
if (bArray[i+iFilterH*k] bArray[i+iFilterH*k+1])
{ // 互换
bTemp = bArray[i+iFilterH*k];
bArray[i+iFilterH*k] = bArray[i+iFilterH*k+1];
bArray[i+iFilterH*k+1] = bTemp;
}
}
}
}
//列排列
// for (k = 0; k iFilterW; k ++)
//{
k=(iFilterW-1)/2;
for (j = 0; j iFilterH-1; j ++)
{
for (i = 0; i iFilterW-1-j; i++)
{
number++;
if (bArray[k+iFilterW*i] bArray[k+iFilterW*(i+1)])
{
// 互换
bTemp = bArray[k+iFilterW*i];
bArray[k+iFilterW*i] = bArray[k+iFilterW*(i+1)];
bArray[k+iFilterW*(i+1)] = bTemp;
}
}
}
}
else
{
//传统冒泡法获取中值
if(0)
{for (j = 0; j iFilterLen - 1; j ++)
{
for (i = 0; i iFilterLen - j - 1; i ++)
{
number++;
if (bArray[i] bArray[i + 1])
{
// 互换
bTemp = bArray[i];
bArray[i] = bArray[i + 1];
bArray[i + 1] = bTemp;
}
}
}
}
else
{
quickSort(bArray,0,iFilterLen-1);//快速排序法
}
}
}
//else
// 计算中值。注:本程序的数组均为奇数个元素
bTemp=bArray[(iFilterLen -1) / 2];
// 返回中值
return bTemp;
}
void quickSort(unsigned char a[], int l, int r)
{// 排序a [ l : r ], a[r+1] 有大值
int t;
if (l = r) return;
int i = l, // 从左至右的游标
j = r + 1; // 从右到左的游标
unsigned char pivot = a[l];
// 把左侧= pivot的元素与右侧= pivot 的元素进行交换
while (true) {
do {// 在左侧寻找= pivot 的元素
i = i + 1;
number++;
} while (a[i] pivot);
do {// 在右侧寻找= pivot 的元素
j = j - 1;
number++;
} while (a[j] pivot);
if (i = j) break; // 未发现交换对象
t=a[i];
a[i]=a[j];
a[j]=t;
}
// 设置p i v o t
a[l] = a[j];
a[j] = pivot;
quickSort(a, l, j-1); // 对左段排序
quickSort(a, j+1, r); // 对右段排序
}
急求中值滤波器的matlab算法代码
I=imread('D:\picture.jpg');
figure;
imshow(I);
K=imnoise(I,'gaussian',0.02);%加噪声
figure;
imshow(K);
g=medfilt2(K);%中值滤波
figure;
imshow(g);
中值滤波器代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于中值滤波器代码表、中值滤波器代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 04-27视觉差网页代码(视觉差网页代码逻辑)[20240427更新]
- 04-27jq图片横向滚动代码(jq实现图片滚动效果)[20240427更新]
- 04-27h5俄罗斯方块源代码(俄罗斯方块js代码)[20240427更新]
- 04-27跑马灯js代码(js跑马灯的实现)[20240427更新]
- 04-27ucos代码量(ucos 信号量)[20240427更新]
- 04-27360度全景图代码(360度全景图制作)[20240427更新]
- 04-27论坛的代码模板(论坛的代码模板是什么)[20240427更新]
- 04-27可口可乐代码(可口可乐代码jqp3)[20240427更新]
- 04-27添加商品的html代码(html商品页面代码)[20240427更新]
- 04-27国外开源代码社区(国外编程社区)[20240427更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
-
- 公司产品推广方案,企业产品推广策划方案
- 仿源代码(仿csdn源码)[20240427更新]
- 可口可乐代码(可口可乐代码jqp3)[20240427更新]
- 八字排盘的源代码(在线排盘八字排盘)[20240427更新]
- 添加商品的html代码(html商品页面代码)[20240427更新]
- 国外开源代码社区(国外编程社区)[20240427更新]
- 代码云笔记(码云上的代码怎么使用)[20240427更新]
- 软件界面代码下载(怎么打开软件代码界面)[20240427更新]
- 帝国程序翻页的代码(帝国程序翻页的代码怎么用)[20240427更新]
- html网站源代码(html5源代码网站)[20240427更新]
- 友情链接