单通道池化

yummy 阅读:68 2022-03-30 22:13:38 评论:0
#include<stdio.h>

#define IN_SIZE 4
#define OUT_SIZE 2

/******************单次池化,最大池化 ********************************************/
int pool_max(float in_img[IN_SIZE][IN_SIZE],float out_img[OUT_SIZE][OUT_SIZE])
{
	int i,j;
	float temp1,temp2,temp3;
	for(i=0;i<IN_SIZE;i+=2)
	{
		for(j=0;j<IN_SIZE;j+=2)
		{
			temp1=in_img[i][j] > in_img[i][j+1] ? in_img[i][j] : in_img[i][j+1];//2 4 10 12
			temp2=in_img[i][j] > in_img[i+1][j] ? in_img[i][j] : in_img[i+1][j];//5 7 13 15
			temp3=temp1>temp2?temp1:temp2;//5 7 13 15
			out_img[i/2][j/2]=temp3;//5 7 13 15
		}
	}
}

/************************单次池化,平均池化 ******************************************/
int pool_min(float in_img[IN_SIZE][IN_SIZE],float out_img[OUT_SIZE][OUT_SIZE])
{
	int i,j;
	float temp1,temp2,temp3;
	for(i=0;i<IN_SIZE;i+=2)
	{
		for(j=0;j<IN_SIZE;j+=2)
		{
			temp1=in_img[i][j] + in_img[i][j+1] ;
			temp2=in_img[i+1][j] + in_img[i+1][j+1];
			temp3=(temp1+temp2)/4;
			out_img[i/2][j/2]=temp3;
		}
	}
}
/****************测试*************************************************/ 
int pool_test()
{
	int i,j;
	float in_img[IN_SIZE][IN_SIZE]={1,2,3,4,
	                                5,6,7,8,
									9,10,11,12,
									13,14,15,16};
	float out_img[OUT_SIZE][OUT_SIZE]={0};
/***************最大池化******************************/	
	pool_max(in_img,out_img) ;
	printf("最大池化\n");
	printf("输入图片\n");
	for(i=0;i<IN_SIZE;i++)
	{
		for(j=0;j<IN_SIZE;j++)
		{
			printf("%.1f\t",in_img[i][j]);
		}
		printf("\n");
	}
	printf("输出图片\n");
	for(i=0;i<OUT_SIZE;i++)
	{
		for(j=0;j<OUT_SIZE;j++)
		{
			printf("%.1f\t",out_img[i][j]);
		}
		printf("\n");
	}
/***************平均池化****************************/	
	pool_min(in_img,out_img) ;
	printf("平均池化\n");
	printf("输入图片\n");
	for(i=0;i<IN_SIZE;i++)
	{
		for(j=0;j<IN_SIZE;j++)
		{
			printf("%.1f\t",in_img[i][j]);
		}
		printf("\n");
	}
	printf("输出图片\n");
	for(i=0;i<OUT_SIZE;i++)
	{
		for(j=0;j<OUT_SIZE;j++)
		{
			printf("%.1f\t",out_img[i][j]);
		}
		printf("\n");
	}
	return 0 ;								 
} 

int main()
{
	pool_test(); 
	return 0;
 }

image.png

本文 zblog模板 原创,转载保留链接!网址:https://xn--zqqs03dbu6a.cn/?id=11

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。