3、锯齿波变换
#include
#include
#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);
}
void my_histogram()
{
int i,j;
float lwidth=128,ratio=128,gg=235;
short (*p)[128];
//定义了一个指针变量p,
//指向了一个包含128个元素的一维数组,
//即行指针变量p
p=goldhill;
//获取原始图像的首地址
// for(i=0;i<256;i++) my_result[i]=0;
//初始化灰度直方图结果数组
for (i=0;i<128;i++)
{ for (j=0;j<128;j++)
{
gg=*(*(p+i)+j);
while(gg>lwidth) gg=gg-lwidth;
*(*(p+i)+j)=gg*ratio+0.5;
}
// k=*(*(p+i)+j);
// my_result[k]++;
}
//自编灰度直方图算法显示函数
}
4、图像剪取
#include
#include
#include "imagelib.h"
//添加图像和视频处理库头文件
#include "imagesample.h"
//添加图像例子头文件,
//包含原始的图像文件goldhill[128][128]
#define MAX_PIXEL_VALUE 256
//包含原始图像像素的最大灰度值
#define WIDTH 128
#define HEIGHT 128
//原始图像行和列的像素数
#define ZERO 0
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);
} void my_histogram()
{
int i,j,threshold=0;
short (*p)[128];
//定义了一个指针变量p,
//指向了一个包含128个元素的一维数组,
//即行指针变量p
p=goldhill;
//获取原始图像的首地址
// for(i=0;i<256;i++) my_result[i]=0;
//初始化灰度结果数组
for (i=0;i<128;i++)
{ for (j=0;j<128;j++)
{
*(*(p+i)+j)=(*(*(p+i)+j)
// k=*(*(p+i)+j);
// my_result[k]++;
}
}
//自编灰度算法显示函数
}