#import "/tpl.typ": *
#show: A => apply(A)
#set raw(lang: "py")
#set par(leading: 0.6em)
#set figure.caption(position: top)
#set figure(supplement: none, numbering: none)
#assignment(1)[
Write a program to do image format conversion i.e., from RGB to gray, gray to binary, RGB to binary, RGB to HSV, HSV to RGB, RGB to YCbCr and YCbCr to RGB.
]
#scos(1)[
#{
let list-of-images = (image("/images/1i.png", width: 80%), )
for i in range(1, 8) {
list-of-images.push(image("/images/1." + str(i) + ".png", width: 80%))
}
let captions = ("Original Image", [RGB #sym.arrow.r Gray], [Gray #sym.arrow.r Binary], [RGB #sym.arrow.r Binary], [RGB #sym.arrow.r HSV], [HSV #sym.arrow.r RGB], [RGB #sym.arrow.r YCbCr], [YCbCr #sym.arrow.r RGB])
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(2)[
Write a program to read an image and rotate that image in clockwise and anti-clockwise direction, and display it.
]
#scos(2)[
#figure(caption: [Original image], image("/images/1i.png", width: 50%))
#figure(caption: [Rotated 60#sym.degree anti-clockwise], image("/images/2.(60.0).png", width: 50%))
#figure(caption: [Rotated 45#sym.degree clockwise], image("/images/2.(-45.0).png", width: 60%))
]
#signature()
#colbreak()
#assignment(3)[
Write a program to find the histogram of a gray image and display the histogram.
]
#scos(3)[
#image("/images/3.svg")
]
#signature()
#colbreak()
#assignment(4)[
Write a program to perform color separation into R, G, and B from an color image.
]
#scos(4)[
#{
let filenames = ("4i", "4.r", "4.g", "4.b")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/" + filenames.at(i) + ".jpg", width: 80%))
}
let captions = ("Original Image", "Red Channel", "Green Channel", "Blue Channel")
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(5)[
Write a program to enhance the image in spatial domain using
+ Image negative
+ Log transformation
+ Power law transform
+ Piecewise linear transform
]
#scos(5)[
#{
let filenames = ("negative", "log", "power_law", "piecewise")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/5." + filenames.at(i) + ".jpg", width: 100%))
}
let captions = ("Image negative", "Log transformation", "Power law transform", "Piecewise linear transform")
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(6)[
Write a program to enhance the image in spatial domain using histogram equalization method.
]
#scos(6)[
#image("/images/6.svg")
]
#signature()
#colbreak()
#assignment(7)[
Write a program to perform the following image enhancement methods:
+ Brightness enhancement
+ Brightness suppression
+ Contrast manipulation
+ Gray level slicing without background
]
#scos(7)[
#{
let filenames = ("a", "b", "c", "d")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/7." + filenames.at(i) + ".jpg", width: 70%))
}
let captions = (
"Brightness enhancement",
"Brightness suppression",
"Contrast manipulation",
"Gray level slicing without background"
)
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(8)[
Write a program to average two images together into a single image.
]
#scos(8)[
#{
let filenames = ("9i1", "9i2", "8o")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/" + filenames.at(i) + ".jpg", width: 70%))
}
let captions = (
"Image 1",
"Image 2",
"Average"
)
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(9)[
Write a program to compare two images using image subtraction.
]
#scos(9)[
#{
let filenames = ("9i1", "9i2", "9o")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/" + filenames.at(i) + ".jpg", width: 70%))
}
let captions = (
"Image 1",
"Image 2",
"Difference"
)
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(10)[
Write a program to perform the following image arithmetic.
+ Image addition
+ Image subtraction
+ Image multiplication
+ Image division
]
#scos(10, cont: true)[
#image("/images/10.svg")
]
#signature()
#colbreak()
#assignment(11)[
Write a program to add various types of noise (salt and pepper noise, Gaussian noise) to an image.
]
#scos(11, cont: true)[
#image("/images/11.svg")
]
#signature()
#colbreak()
#assignment(12)[
Write a program to enhance an image using mean filtering, weighted average filtering, median filtering, max/min filtering.
]
#scos(12, cont: true)[
#image("/images/12.svg")
]
#signature()
#colbreak()
#assignment(13)[
Write a program to segment an image using thresolding technique.
]
#scos(13)[
#{
let filenames = ("1igr.png", "13.1.jpg", "13.2.jpg", "13.3.jpg")
let list-of-images = ()
for i in range(filenames.len()) {
list-of-images.push(image("/images/" + filenames.at(i), width: 70%))
}
let captions = (
"Original Image",
"Segment 1",
"Segment 2",
"Segment 3",
)
let figures = ()
for i in range(list-of-images.len()) {
figures.push(figure(caption: captions.at(i), list-of-images.at(i)))
}
grid(
columns: 2,
gutter: 1em,
..figures
)
}
]
#signature()
#colbreak()
#assignment(14)[
Write a program to find the edge of a given image with the following operators.
+ Difference operator
+ Robert operator
+ Prewitt operator
+ Sobel operator
]
#scos(14)[
#image("/images/14.svg")
]
#signature()