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

📄 time.c

📁 图像置乱代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	char str[25];	strcpy(fname,"r_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 R-trasformation matrix:\n");	fprintf(fp,"construct the R-trasformation matrix:\n");/*------------------------------------------------*/	gettimeofday(&start, NULL);	r_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("r_arnold used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_arnold used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_fibonacci used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_fibonacci used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_qatlig used_time = %d Microseconds\n",used_time);	fprintf(fp,"r-qatlig used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_hilbert used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_hilbert used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_zigzag used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_zigzag used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_latin used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_latin used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_graycode used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_graycode used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_baker used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_baker used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_sampling used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_sampling used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_convey used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_convey used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_logistic used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_logistic used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);	r_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("r_random used_time = %d Microseconds\n",used_time);	fprintf(fp,"r_random used_time = %d Microseconds\n",used_time);/*-----------------------------------------------------------*/	printf("R_transformation matrix:\n");	fprintf(fp,"R_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);}/********** Tool creation **********/
void            time_tool(int x, int y)
{
	static void *tool = NULL;	if (tool)
	{
		tw_show_tool(tool);
		return;
	}
	tool = (void *)tw_tool("show time", x, y);
    	/* Initialise pathname from environment variable (or #define) */	tw_iglobal("Scrambling times = ", &SCRAM_n, 5);	tw_newrow();	tw_iglobal("height = ", &HEIGHT, 5);	tw_iglobal("width = ", &WIDTH, 5);	tw_newrow();	tw_button("show time", show_time,NULL);	tw_button("R_show time", R_show_time,NULL);	tw_newrow();
	tw_end_tool();
}

⌨️ 快捷键说明

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