📄 双峰直方图求分割点算法c语言模拟.txt
字号:
双峰直方图求分割点算法C语言模拟[原创]
通过双峰直方图求阈值在图像处理中有很多应用,我们可以根据双峰之间的波谷来提取阈值,从而把图像中的背景和物体分割。下面的代码简单模拟了这个过程。程序适用范围:提供的数据为严格单峰或双峰,不能有大脉冲。欢迎大家提出批评意见!
#i nclude <conio.h>
int bogu(int array[],int n)
{
int i,j,min,k;
i=0;
while(array[i]<=array[i+1]&&i<n)
i++;
j=n-1;
while(array[j]<=array[j-1]&&j>i)
j--;
if(i>=j)
{
printf("\nThe sequence has only one wave crest.\nAnd the wave crest value is:%d\n",array[i]);
return -1;
}
else
{
min=array[i];
for(k=i+1;k<=j;k++)
{
if(array[k]<min)
min=array[k];
}
}
return min;
}
void output(int array[],int n)
{
int i;
printf("\n");
for(i=0;i<n;i++)
printf("%4d",array[i]);
printf("\n");
}
main()
{
int data[20]={1,2,3,4,6,5,3,2,2,4,5,7,8,9,9,7,6,4,3,2};
int data1[20]={0,1,2,3,4,5,6,7,8,9,9,8,7,6,5,4,3,2,1,0};
int bg;
clrscr();
printf("\nThe data is:\n");
output(data,20);
if((bg=bogu(data,20))!=-1)
printf("\nThe bogu of data is:%4d\n",bg);
printf("\n\nThe data is:\n");
output(data1,20);
if((bg=bogu(data1,20))!=-1)
printf("\nThe bogu of data is:%4d\n",bg);
}
BugEyes 发表于 2005-10-20 17:13:00
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -