⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.c

📁 图像置乱代码
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <tina/all_tina.h>#include "bmp.h"static int HEIGHT = 4;static int WIDTH = 4;static int SCRAM_n = 10;static suseconds_t used_time = 0;void show_time(void){	struct timeval start, end;
	int height = HEIGHT, width = WIDTH;	int i,j;	FILE *fp;	char fname[64];	char str[25];	strcpy(fname,"time_");	gcvt(SCRAM_n,5,str);	strcat(fname, str);	strcat(fname, "_");	gcvt(height,5,str);	strcat(fname, str);	strcat(fname, "x");	gcvt(width,5,str);	strcat(fname, str);	strcat(fname,".txt");	fp = fopen(fname,"wb");/*------------------------------------------------*/	int **trans_r, **trans_c;
	trans_r = int_matrix(height, width);
	trans_c = int_matrix(height, width);	printf("construct the trasformation matrix:\n");	fprintf(fp,"construct the trasformation matrix:\n");/*------------------------------------------------*/	gettimeofday(&start, NULL);	arnold_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("arnold used_time = %d Microseconds\n",used_time);	fprintf(fp,"arnold used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	fibonacci_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("fibonacci used_time = %d Microseconds\n",used_time);	fprintf(fp,"fibonacci used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	qatlig_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("qatlig used_time = %d Microseconds\n",used_time);	fprintf(fp,"qatlig used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	hilbert_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("hilbert used_time = %d Microseconds\n",used_time);	fprintf(fp,"hilbert used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	zigzag_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("zigzag used_time = %d Microseconds\n",used_time);	fprintf(fp,"zigzag used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	latin_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("latin used_time = %d Microseconds\n",used_time);	fprintf(fp,"latin used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	graycode_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("graycode used_time = %d Microseconds\n",used_time);	fprintf(fp,"graycode used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	baker_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("baker used_time = %d Microseconds\n",used_time);	fprintf(fp,"baker used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	sampling_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("sampling used_time = %d Microseconds\n",used_time);	fprintf(fp,"sampling used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	convey_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("convey used_time = %d Microseconds\n",used_time);	fprintf(fp,"convey used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	logistic_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("logistic used_time = %d Microseconds\n",used_time);	fprintf(fp,"logistic used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	gettimeofday(&start, NULL);	random_matrix(trans_r, trans_c, height, width);	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("random used_time = %d Microseconds\n",used_time);	fprintf(fp,"random used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("transformation matrix:\n");	fprintf(fp,"transformation matrix:\n");		for(i = 0; i < height; i++)
		{
			for(j = 0; j < width; j++)
			{
				printf("(%d %d) ",trans_r[i][j],trans_c[i][j]);				fprintf(fp,"(%d %d) ",trans_r[i][j],trans_c[i][j]);
			}			printf("\n");			fprintf(fp,"\n");
		}	for(i = 0; i < height; i++)
	{
		for(j = 0; j < width; j++)
		{			printf("%3d ",trans_r[i][j]*width+trans_c[i][j]);			fprintf(fp,"%3d ",trans_r[i][j]*width+trans_c[i][j]);		}		printf("\n");		fprintf(fp,"\n");
	}/*-----------------------------------------------------------*//*------------------------------------------------*/	int k;	double pix;	Imrect *srcIm,*destIm,*tmpIm;	srcIm = im_alloc( height, width, NULL, double_v );	destIm = im_alloc( height, width, NULL, double_v );int g;for( g = 1; g <= SCRAM_n; g++){	gettimeofday(&start, NULL);	for( k = 0; k < g; k++)
	{			for (i = 0; i < height  ; i++)
		{
			for (j = 0; j< width ; j++)
			{								IM_PIX_GET(srcIm, i, j, pix);
				IM_PIX_SET(destIm, trans_r[i][j], trans_c[i][j], pix);
			}
		}
 		tmpIm = srcIm;
		srcIm = destIm;
		destIm = tmpIm;	}	gettimeofday(&end, NULL);	used_time = (end.tv_sec-start.tv_sec)*1000000 + (end.tv_usec-start.tv_usec);	printf("\niterate %d times: used_time = %d Microseconds\n",g,used_time);	fprintf(fp,"\niterate %d times: used_time = %d Microseconds\n",g,used_time);}	fclose(fp);	im_free(srcIm);	im_free(destIm);/*------------------------------------------------*/	free_int_matrix(trans_r, height);
	free_int_matrix(trans_c, height);}void R_show_time(void){	struct timeval start, end;
	int height = HEIGHT, width = WIDTH;	int i,j;	FILE *fp;	char fname[64];

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -