0% found this document useful (0 votes)
51 views

Index: SR - No Program Date Signature Remark

The document contains 3 programs in C for image processing transformations: the first program scales images by multiplying the scaling ratios to the transformation matrix, the second program translates images by adding the translation offsets to the transformation matrix, and the third program rotates images by calculating the cosine and sine of the rotation angle and applying them to the transformation matrix. Each program displays and transforms a sample triangle shape to demonstrate the transformation.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

Index: SR - No Program Date Signature Remark

The document contains 3 programs in C for image processing transformations: the first program scales images by multiplying the scaling ratios to the transformation matrix, the second program translates images by adding the translation offsets to the transformation matrix, and the third program rotates images by calculating the cosine and sine of the rotation angle and applying them to the transformation matrix. Each program displays and transforms a sample triangle shape to demonstrate the transformation.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

Index

Sr.No 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

You might also like