c语言的图形程序源代码,图形旋转的C语言源程序.doc

图形旋转的C语言源程序

图形旋转的C语言源程序

/*****************************************************************/

/* CONVOLVE.C - Turbo C 2.0 implementation of image convolution */

/* by Wesley G. Faler. All code is "as is". There */

/* is NO copyright. Use this code as you will, and if you make */

/* money at it, good for you. */

/*****************************************************************/

#include

#include

#include

#include

#include

int load_cut(char *fname);

int load_convolution_matrix(char *fname);

int convolve_image(void);

int swap_pictures(void);

int minx,maxx,miny,maxy;

int LOADPAGE=0;

int ENHANCEPAGE=1;

int *cmat, *pmat, *vmat;

int cmx,cmy,cmnum;

struct palettetype palette,newpal;

int driver,mode;

int cleancut=-1;

int init_graphics(void)

{

driver=DETECT; mode=0;

detectgraph(&driver,&mode);

if(driver==VGA) mode=VGAMED;

initgraph(&driver,&mode,"");

getpalette(&palette);

getpalette(&newpal);

}

int cleanup_image(void)

{

int i,j,num,x,y,k;

if(cleancut<0) return;

setactivepage(LOADPAGE);

setvisualpage(ENHANCEPAGE);

for(x=minx;x

for(y=miny;y

if(getpixel(x,y)!=0) num=-1;

else num=0;

for(j=-1;j<2;j++) {

for(i=-1;i<2;i++) {

if(getpixel(x+i,y+j)!=0) num++;

}

}

if(num>cleancut) {

k=getpixel(x,y);

setactivepage(ENHANCEPAGE);

putpixel(x,y,k);

setactivepage(LOADPAGE);

}

}

}

k=ENHANCEPAGE; ENHANCEPAGE=LOADPAGE; LOADPAGE=k;

}

void show_test_image(void)

{

int i;

minx=cmx; miny=cmy;

maxx=100+minx; maxy=100+miny;

setcolor(1);

moveto(minx,miny);

randomize();

for(i=0;i<20;i++)

lineto(random(100)+minx,random(100)+miny);

for(i=0;i<10;i++)

fillellipse(random(50)+25+minx,random(50)+25+miny,random(25),random(25));

}

main()

{

char fname[50];

int flag=0;

load_convolution_matrix("matrix.dat");

printf(".CUT file (1) or test image (0)?");

scanf("%d",&flag);

flag= flag? 1:0;

if(flag) {

fflush(stdin);

printf("filename to process:");

gets(fname);

}

printf("Delete pixels with x or fewer neighbors. x=");

scanf("%d",&cleancut);

if(cleancut>8) clean

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值