Index
[Link] Program Date Signature Remark
1- Write a program in C for
scaling of images.
2- Write a program in C for
translation of images.
3- Write a program in C for
rotation of images.
4- Write a program in C to
use arithmetic mean filter
for image processing.
5- Write a program in C to
use low pass filter for
image processing.
6- Write a program in C to
use high pass filter for
image processing.
Program1:- Write a program in C for scaling of images.
#include "Stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
void intgraph();
void display_cordinate(char bg_color,char line_color);
int Create_poly(int poly[][2]);
void fill_poly(int poly[][2],int points,char line_color,char fill_color);
void Identity(float Matrix[3][3]);
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis);
void main()
int poly[3][2],i,points,Xdis,Ydis;
float Sx,Sy,Matrix[3][3],temp,Cos,Sin;
char ch;
intgraph();
setfillstyle(8,BLUE);
points=Create_poly(poly);
display_cordinate(DARKGRAY,WHITE);
fill_poly(poly,points,WHITE,GREEN);
getch();
Identity(Matrix);
Xdis=0-poly[0][0];
Ydis=0-poly[0][1];
Translate_to_Relative(poly,points,Xdis,Ydis);
printf(“Enter the no. of lines:-”);
scanf(“%d”,&n);
printf(“Enter the co-ordinates:-“);
printf(" Enter Scaling Ratio:- ");
printf(" Sx:- ");
scanf("%f",&Sx);
printf(" Sy:- ");
scanf("%f",&Sy);
for(i=0;i<3;i++)
Matrix[i][0]=Matrix[i][0]*Sx;
Matrix[i][1]=Matrix[i][1]*Sy;
getch();
closegraph();
exit(0);
setgraphmode(2);
display_cordinate(DARKGRAY,BLUE);
Translate_to_Relative(poly,points,-Xdis,-Ydis);
fill_poly(poly,points,CYAN,BLUE);
getch();
void intgraph()
int g=DETECT,d;
initgraph(&g,&d,"c:\tc\bgi");
void fill_poly(int poly1[][2],int points,char line_color,char fill_color)
int pol[20],i;
char str[2];
for(i=0;i<=points;i++)
pol[i*2]=poly1[i][0];
pol[i*2+1]=poly1[i][1];
pol[i*2]=poly1[0][0];
pol[i*2+1]=poly1[0][1];
setcolor(line_color);
setfillstyle(8,fill_color);
fillpoly(points+1,pol);
setcolor(fill_color);
settextstyle(1,0,3);
for(i=0;i<=points;i++)
sprintf(str,"%c",i+'a');
outtextxy(poly1[i][0],poly1[i][1],str);
void Identity(float Matrix[3][3])
int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
if(i==j)
Matrix[i][j]=1;
else
Matrix[i][j]=0;
int Create_poly(int poly[][2])
poly[0][0]=200;
poly[0][1]=20;
poly[1][0]=300;
poly[1][1]=150;
poly[2][0]=130;
poly[2][1]=280;
return 2;
void display_cordinate(char bg_color,char line_color)
{ int i;
setbkcolor(bg_color);
setcolor(line_color);
for(i=0;i<=640;i+=50)
line(i,0,i,480);
for(i=0;i<=480;i+=50)
line(0,i,640,i);
}
rectangle(0,0,639,479);
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis)
int i;
for(i=0;i<=points;i++)
poly[i][0]=poly[i][0]+Xdis;
poly[i][1]=poly[i][1]+Ydis;
OUTPUT
Enter the no. of lines:- 5
Enter the co-ordinates:- 300 199
454 500
500 123
123 310
456 234
Enter the scaling ratio:-
Sx:- 60
Sy:-60
Program2:- Write a program in C for translation of images.
#include "Stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
void intgraph();
void display_cordinate(char bg_color,char line_color);
int Create_poly(int poly[][2]);
void fill_poly(int poly[][2],int points,char line_color,char fill_color);
void Identity(float Matrix[3][3]);
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis);
void main()
int poly[3][2],i,points,Xdis,Ydis;
float Sx,Sy,Matrix[3][3],temp,Cos,Sin;
char ch;
intgraph();
setfillstyle(8,RED);
points=Create_poly(poly);
display_cordinate(DARKGRAY,GREEN);
fill_poly(poly,points,GREEN,BLUE);
getch();
Identity(Matrix);
Xdis=0-poly[0][0];
Ydis=0-poly[0][1];
printf(“Enter the no. of lines:-”);
scanf(“%d”,&n);
printf(“Enter the co-ordinates:-“);
printf(" Enter Translation [Relative]:- ");
printf(" Tx:- ");
scanf("%f",&Sx);
printf(" Ty:- ");
scanf("%f",&Sy);
Matrix[2][0]=Matrix[2][0]+Sx;
Matrix[2][1]=Matrix[2][1]+Sy;
getch();
closegraph();
exit(0);
setgraphmode(2);
display_cordinate(DARKGRAY,BLUE);
Translate_to_Relative(poly,points,-Xdis,-Ydis);
fill_poly(poly,points,CYAN,GREEN);
getch();
void intgraph()
int g=DETECT,d;
initgraph(&g,&d,"c:\tc\bgi");
void fill_poly(int poly1[][2],int points,char line_color,char fill_color)
int pol[20],i;
char str[2];
for(i=0;i<=points;i++)
{
pol[i*2]=poly1[i][0];
pol[i*2+1]=poly1[i][1];
pol[i*2]=poly1[0][0];
pol[i*2+1]=poly1[0][1];
setcolor(line_color);
setfillstyle(8,fill_color);
fillpoly(points+1,pol);
setcolor(fill_color);
settextstyle(1,0,3);
for(i=0;i<=points;i++)
sprintf(str,"%c",i+'a');
outtextxy(poly1[i][0],poly1[i][1],str);
void Identity(float Matrix[3][3])
int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
if(i==j)
Matrix[i][j]=1;
else
Matrix[i][j]=0;
}
}
int Create_poly(int poly[][2])
{ poly[0][0]=200;
poly[0][1]=20;
poly[1][0]=300;
poly[1][1]=150;
poly[2][0]=130;
poly[2][1]=280;
return 2;
void display_cordinate(char bg_color,char line_color)
int i;
setbkcolor(bg_color);
setcolor(line_color);
for(i=0;i<=640;i+=50)
line(i,0,i,480);
for(i=0;i<=480;i+=50)
line(0,i,640,i);
rectangle(0,0,639,479);
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis)
{
int i;
for(i=0;i<=points;i++)
poly[i][0]=poly[i][0]+Xdis;
poly[i][1]=poly[i][1]+Ydis;
OUTPUT
Enter the no. of lines:-4
Enter the co-ordinates:- 200 100
100 200
200 200
100 100
Enter Translation [Relative]:-
Tx:-80
Ty:-30
Program3:- Write a program in C for rotation of images.
#include "Stdio.h"
#include "conio.h"
#include "math.h"
#include "graphics.h"
void intgraph();
void display_cordinate(char bg_color,char line_color);
int Create_poly(int poly[][2]);
void fill_poly(int poly[][2],int points,char line_color,char fill_color);
void Identity(float Matrix[3][3]);
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis);
void main()
int poly[3][2],i,points,Xdis,Ydis;
float Sx,Sy,Matrix[3][3],temp,Cos,Sin;
char ch;
intgraph();
setfillstyle(8,BLUE);
points=Create_poly(poly);
display_cordinate(DARKGRAY,GREEN);
fill_poly(poly,points,GREEN,BLUE);
getch();
Identity(Matrix);
Xdis=0-poly[0][0];
Ydis=0-poly[0][1];
Translate_to_Relative(poly,points,Xdis,Ydis);
printf(“Enter the no. of lines:-”);
scanf(“%d”,&n);
printf(“Enter the co-ordinates:-“);
printf(" Enter Rotation Angle [Degree]:- ");
scanf("%f",&Sx);
Sx=(Sx*3.14)/180;
Cos=cos(Sx);
Sin=sin(Sx);
for(i=0;i<=2;i++)
temp=Matrix[i][0]*Cos-Matrix[i][1]*Sin;
Matrix[i][1]=Matrix[i][0]*Sin+Matrix[i][1]*Cos;
Matrix[i][0]=temp;
getch();
closegraph();
exit(0);
setgraphmode(2);
display_cordinate(DARKGRAY,GREEN);
Translate_to_Relative(poly,points,-Xdis,-Ydis);
fill_poly(poly,points,CYAN,BLUE);
getch();
restorecrtmode();
do
Translate_to_Relative(poly,points,Xdis,Ydis);
} closegraph();
void intgraph()
{
int g=DETECT,d;
initgraph(&g,&d,"c:\tc\bgi");
void fill_poly(int poly1[][2],int points,char line_color,char fill_color)
int pol[20],i;
char str[2];
for(i=0;i<=points;i++)
pol[i*2]=poly1[i][0];
pol[i*2+1]=poly1[i][1];
pol[i*2]=poly1[0][0];
pol[i*2+1]=poly1[0][1];
setcolor(line_color);
setfillstyle(8,fill_color);
fillpoly(points+1,pol);
setcolor(fill_color);
settextstyle(1,0,3);
for(i=0;i<=points;i++)
sprintf(str,"%c",i+'a');
outtextxy(poly1[i][0],poly1[i][1],str);
void Identity(float Matrix[3][3])
{
int i,j;
for(i=0;i<=2;i++)
{ for(j=0;j<=2;j++)
if(i==j)
Matrix[i][j]=1;
else
Matrix[i][j]=0;
int Create_poly(int poly[][2])
poly[0][0]=200;
poly[0][1]=20;
poly[1][0]=300;
poly[1][1]=150;
poly[2][0]=130;
poly[2][1]=280;
return 2;
void display_cordinate(char bg_color,char line_color)
int i;
setbkcolor(bg_color);
setcolor(line_color);
for(i=0;i<=640;i+=50)
{
line(i,0,i,480);
for(i=0;i<=480;i+=50)
{ line(0,i,640,i);
rectangle(0,0,639,479); }
void Translate_to_Relative(int poly[][2],int points,int Xdis,int Ydis)
int i;
for(i=0;i<=points;i++)
poly[i][0]=poly[i][0]+Xdis;
poly[i][1]=poly[i][1]+Ydis;
OUTPUT
Enter the no. of lines:-3
Enter the co-ordinates:-200 100
200 350
220 100
Enter the rotation angle [Degree]:-50