summary refs log blame commit diff stats
path: root/opencv/body.typ
blob: 8d782908edd9ee6c988aae8bd3b6c9aa36e1d12a (plain) (tree)



















































































































































































































































































































                                                                                                                                                                                                                         
#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()