Universitas International Batam 2014: Digital Image Processing

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 17

DIGITAL IMAGE PROCESSING

UNIVERSITAS INTERNATIONAL BATAM 2014

DIGITAL
IMAGE
PROCESSING

EDGE
DETECTION

AREA
ESTIMATION

RGB, BINARY,
GRAYSCALE,
HSV

FILTER

THRESHOLD
HUE &
SATURATION

The Ingredients !!!


Ms Chart
Digunakan untuk menampilkan
histogram dari aplikasi yang
digunakan.
EmguCV
Emgu CV adalah cross platform
yang terdapat dalam .NET untuk
library pengolahan citra pada Intel
OpenCV. EmguCV ini mengikuti
fungsi
yang
terdapat
pada
OpenCV yang diambil dari .NET
oleh sebab itu compatible dengan
bahasa pemrograman C#, VB,
VC++,
IronPython
dan
sebagainya.
Visual studio
Sebenarnya,
aplikasi
ini
dibutuhkan karena pada dasarnya
pemrograman
menggunakan
aplikasi ini dengan Bahasa C#

using System.Windows.Forms.
DataVisualization.Charting;
Capture capture = new Capture();
using
using
using
using
using
using
using
using
using
using
using
using
using
using
using

Emgu.CV.UI;
Emgu.CV;
Emgu.CV.Structure;
Emgu.CV.CvEnum;
Emgu.CV.Util;
Emgu.CV.ML;
System.Media;

System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Linq;
System.Text;
System.Windows.Forms;

Area Estimation
using Binary Image
Using brigthness and contrast
transformation
Contrast adalah proses pengaturan
nilai range interval pada setiap nilai
derajat keabuan

k o G ( ki P ) P

Brightness
kecerahan
k k b
o

adalah

tingkat

Cred = ((G *(red - P))+ P) +Convert.ToInt16(b);


Cgreen= ((G *(green - P))+P)+Convert.ToInt16(b);
Cblue = ((G *(blue - P))+ P)+Convert.ToInt16(b);
if (Cblue > 255) { Cblue = 255; }
else if (Cblue < 0) { Cblue = 0; }
if (Cgreen > 255){ Cgreen = 255; }
else if (Cgreen < 0){ Cgreen = 0;}
if (Cred > 255) { Cred = 255; }
else if (Cred < 0) { Cred = 0; }
if (P == 0 ){
img.Data[y, x, 0] = ImgColor.Data[y, x, 0];
img.Data[y, x, 1] = ImgColor.Data[y, x, 1];
img.Data[y, x, 2] = ImgColor.Data[y, x, 2];}
Else
{img.Data[y, x, 0] = Convert.ToByte(Cblue);
img.Data[y, x, 1] = Convert.ToByte(Cgreen);
img.Data[y, x, 2] = Convert.ToByte(Cred);}}}

Area Estimation
using Binary Image
Use transformation from RGB
image to Grayscale image and
then to binary image
f1R ( x, y ) f1G ( x, y ) f1B ( x, y )
f o ( x, y )
3
for (int y = 0; y < img.Height; y++)
{for (int x = 0; x < img.Width; x++)
{ blue = img.Data[y, x, 0];
green = img.Data[y, x, 1];
red
= img.Data[y, x, 2];
gray = (blue + green + red) / 3;
ImgGray.Data[y, x, 0] =(byte)gray;}}

I bin ( x, y ) {

I G ( x , y ) T

255 IG ( x , y ) T

if (gray < threshold)


{ImgBinary.Data[y, x, 0] = 0;}
Else
{ImgBinary.Data[y, x, 0] = 255;}

Estimation...
Mendeteksi
lingkaran2
Luas r

luas

if (ImgBinary.Data[y, x, 0] == 255)
{xpos[i] = x;
ypos[i] = y;
i = i + 1; }}}

Menghitung jari-jari
Luas
r

if (i != 0) {
i = i - 1; }
else { i = 0; }
temp11 = (xpos[i] - xpos[0]) / 2;
temp12 = ((ypos[i] - ypos[0])) / 2;
int xt = xpos[i] - temp11;
int yt = ypos[i] - temp12;
double luas = i;
double r = (Math.Sqrt(luas/Math.PI));
double keliling = (2*r* Math.PI);

Menghitung
keliling
lingkaran
2r
Menghitung
posisi
(X
,Y
)
(X ,Y ) titik
tengah
dan
memberikan tanda
i

(Xf,Yf)

X = Xf Xi midX= Xf X/2
Y = Yf Yi midY= Yf Y/2

(Xf,Yf)

center.X = xt;
center.Y = yt;
ImgBinary.Draw(new CircleF(center, 1), new
Gray(), 2);

Conclusions...

Contrast
apabila
contrast
tinggi,
kurva
lebar dan sebaliknya.
Brightness tinggi jumlah
pixel putih lebih banyak
(255).
Threshold optimum 40199, jika threshold terlalu
besar maka pixel yang
dihasilkan
berwarna
hitam dan sebaliknya
Contrast,
brightness
dan
brightness
ikut
mempengaruhi estimasi
luas
lingkaran.
Jika
estimasi luas tidak sesuai
titik tengah juga tidak
berada di tengah objek.

Color Filtering using HSV Image


Hue adalah suatu ukuran panjang
gelombang yang terdapat pada warna
dominan yang diterima oleh penglihatan
Saturation adalah ukuran banyaknya
cahaya putih yang bercampur pada hue.
Value banyaknya cahaya yang diterima
oleh mata tanpa memperdulikan warna

RGB to HSV transformation

Normalitation

r R

Calculation

(G B )

( B R)
60
2

60

MAX (r , g , b) MIN (r , g , b)

S=

MAX
0

; MAX 0
; MAX = G

(R G)
2

; MAX = R

if (h < 0){ h += 360;}

; MAX = G

ImgHsv.Data[y, x, 0]= (byte)


(h*0.708);
ImgHsv.Data[y, x, 1]= (byte)(s);
ImgHsv.Data[y, x, 2]= (byte)(v);

60

; MAX = B

; MAX = 0

H H 360

if (max != 0){s = delta / max;}


else {s = 0; h = 0;}
if (max == r)
{ h=(g - b) / delta;}
else if (max == g)
{ h=2+((b-r)/delta);}
else
{ h=2+((r-g)/delta);h *= 60;}

1
1
1
|g G
|b B
255
255
255

V MAX (r , g , b)

min = Math.Min(r, g);


min = Math.Min(min, b);
max = Math.Max(r, g);
max = Math.Max(max, b);
v = max;
delta = max - min;

jika H < 0

HSV
to
transformation

Binary

255 ;h Th and s Ts
;h Th and s Ts
0

I BIN ( x, y )

if (h > THue && s < TSat)


{ImgBinary.Data[y, x, 0] = 255;}
else
{ImgBinary.Data[y, x, 0] = 0;}}}}

Conclusions...

HSV merupakan ruang


warna yang cocok untuk
mengidentifikasi warnawarna dasar, dan dapat
menoleransi perubahan
intensitas cahaya.
Hue
semakin
besar
intensitas warna biru
berkurang
namun
karena saturation nol,
binary semua hitam.
Saturation
jika
saturation nol binary
akan berwarna hitam,
selain itu (>0) tidak ada
perubahan
yang
signifikan.
Hue
&
Saturation
membentuk citra asli,
semakin
ditingkatkan
hue
seemakin
jelas
karena
jumlah
pixel

Konvulasi

Image Enhancement using


Filter and Edge detection

Image Enhancement

Melalui operasi pemrosesan awal inilah kualitas citra


diperbaiki (menghilangkan noise, kabur, gambar terlalu
gelap) sehingga citra dapat digunakan untuk aplikasi lebih
lanjut, misalnya untuk aplikasi pengenalan (recognition)
objek di dalam citra.

Area Processing

Area Process yaitu algoritma yang digunakan untuk


memanipulasi citra pada pixel utama dengan melibatkan
pixel tetangga. Yang termasuk pada area process yaitu:
1.Konvolusi, yang terdiri dari : Embossing, Blurring,
Sharpening, Edge Detection.
2.Filtering, yang terdiri dari : Median, Average, Maximum,
Minimum Place Logo Here,

Otherwise Delete Box

Konvolusi (convolution)
adalah sebuah proses
dimana citra dimanipulasi
dengan menggunakan
eksternal mask /
subwindows untuk
menghasilkan citra yang
baru.
Filtering
Filtering tanpa
menggunakan ekternal
mask tetapi hanya
menggunakan pixel
tetangga untuk
mendapatkan pixel yang
baru.

Robert
Disebut juga DPCM

Edge detection

(Differential Pulse Code


Modulation). menggunakan
teknik differensial dengan arah

Deteksi tepi yaitu


proses menentukan
lokasi titik-titik yang
merupakan tepi objek

horizontal dan vertical, dan

Gx

Gy

f ( x, y )

f ( x 1, y ) f ( x, y )
x

f ( x, y )
f ( x, y 1) f ( x, y )

dilanjutkan dengan konversi


binary.

Gradient
Istilah gradien atau
gradien warna yang
digunakan untuk
campuran bertahap
warna dari nilai rendah ke
nilai tinggi.

Gx
f
Gy

f
x

f
y

f
x

f
y

Prewitt
Metode ini menggunakan HPF

G[ f ( x, y )] (Gx 2 G y 2

(High

juga

Gx (a2 c.a3 a4 ) (a0 c.a7 a6 )

menggunakan fungsi Laplacian

G y (a0 c.a1 a2 ) (a6 c.a5 a4 )

yang

Pass

Filter)

dan

digunakan

untuk

membangkitkan HPF itu sendiri.


Canny

Gx f ( x 1, y ) f ( x, y )

Merupakan model edge detection

G y f ( x, y 1) f ( x, y )

yang

M ( x, y ) mag (f ) g x g y
2

hanya

menggunakan

warna yaitu hitam dan putih

{ImgResult = ImgGray.Canny(new
Gray(0), new Gray(255)) ; }

First Orde Derivative


Teknik ini menggunakan perbedaan antara
satu piksel dengan piksel tetangganya
sebagai prinsip.
Gx f ( x, y 1) f ( x, y )

G y f ( x 1, y ) f ( x, y )
G[ f ( x, y )] Gx 2 G y 2

Laplacian (Second Order Derivative)


Teknik turunan kedua ini merupakan teknik
yang sensitive terhadap noise
2 f 2 f
f 2 2
x
y

Filter
Min
Piksel dapat diperoleh dari nilai
terendah untuk minimum filter

Average
Pixel baru dapat diperoleh dari
penjumlahan pixel lalu dibagi
oleh jumlah pixel tersebut

2 f
f ( x 1, y ) f ( x 1, y ) 2 f ( x, y )
x 2
2 f
f ( x, y 1) f ( x, y 1) 2 f ( x, y )
y 2

Max
Piksel dapat diperoleh dari
nilai
tertinggi
untuk
maksimum filter yaitu

OpenFileDialog openfile = new OpenFileDialog();


private void button1_Click(object sender, EventArgs e)
{openfile.Filter = "All files (*.jpg)|*.jpg";
if (openfile.ShowDialog() == DialogResult.OK)
{Image<Bgr, Byte> ImgColor = new Image<Bgr,Byte>
(openfile.FileName);
Image<Bgr, byte> resizedImage = ImgColor.Resize(320,
240, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);
imageBox1.Image = resizedImage;}
reset();
imageBox2.Image =ImgResult ; }

Capture capture = new Capture("c.flv");


ImgColor = capture.QueryFrame();

Conclusions...
Penggunaan minimum filter memberikan kesan gelap pada gambar,
average filter memberikan kesan buram pada gambar, maximum filter
meberikan penonjolan pada piksel putih. Semakin besar maksimum
filter yang digunakan warna putih semakin mencolok, dan memberikan
kesan terang pada gambar.
Penggunaan edge detection memberikan ciri khas berdasarkan setiap
tekniknya. Teknik gradient memberikan deteksi tepi yang akurat, dan
menggunakan garis putih tipis untuk mewakili tepi yang terdeteksi.
Teknik Robert memberikan tekstur dan kesan seperti ukiran di
lempeng aluminium, deteksi tepi sudah akurat dan memberikan
tekstur pada gambar yang tertangkap. Teknik Prewitt memberikan
deteksi yang akurat, teknik ini menggunakan garis putih tebal untuk
mewakili tepi yang terdeteksi sehingga memberi kesan tegas dalam
gambar. Teknik Canny merupakan deteksi tepi yang paling akurat
dengan menggunakan garis putih untuk mewakili tepi yang terdeteksi.
Walau garis yang dihasilkan tidak setegas Prewitt, teknik ini banyak
dipilih karena keakuratannya dan kemampuannya mendeteksi gelap
terang gambar. First derivative menghasilkan gambar yang mirip
dengan gradient, dan Second derivative menghasilkan gambar yang
mirip dengan First derivative, hanya saja seperti diberi garis bayang
tipis, sehingga gambar yang dihasilkan pun lebih lemah dan rentan

You might also like