for (i=0;i<128;i++)
{ for (j=0;j<128;j++)
/* log transform.*/
{
fij=*(*(p+i)+j);
if(fij==0)fij=0.001;
gij=zzlba*(log(fij)-log(za))+z1;
*(*(p+i)+j)=gij+0.5;
}
}
// k=*(*(p+i)+j);
// my_result[k]++;
}
3、锯齿波变换
#include <stdio.h>
#include <stdlib.h>
#include "imagelib.h"
//添加图像和视频处理库头文件
#include "imagesample.h"
//添加图像例子头文件,
//包含原始的图像文件goldhill[128][128]
#define MAX_PIXEL_VALUE 256
//包含原始图像像素的最大灰度值
#define WIDTH 128
#define HEIGHT 128
//原始图像行和列的像素数
int my_result[256];
//保存自编函数得到的灰度直方图结果的数组
short histogram_output[256];
//保存调用库函数得到的灰度直方图结果的数组
short my_threshold_val=175;
//short my_threshold_val=127;
//阈值的设定
void my_histogram();
//声明自编灰度直方图算法显示函数
void main( )
{
int i;
int my_size;
short *input;
my_size = WIDTH*HEIGHT;
//计算所有像素点数
input = &goldhill[0][0];
//获取原始图像的首地址
for(i= 0;i< MAX_PIXEL_VALUE;i++) histogram_output[i]= 0;
IMG_histogram(input,histogram_output,my_size);
//调用image.lib库函数实现灰度直方图显示
my_histogram();
//自编C语言算法程序实现灰度直方图显示
IMG_threshold(&goldhill[0][0],&goldhill[0][0],WIDTH,HEIGHT, my_threshold_val );
//调用image.lib库函数实现阈值处理与显示
while(1);
}
上一页 [1] [2] [3] [4] [5] [6] 下一页