>>> WELCOME SLURR <<<

Selasa, 07 Desember 2021

Permodelan Sistem Fuzzy


Fuzzy secara bahasa diartikan sebagai kabur atau samar yang artinya suatu nilai dapat bernilai benar atau salah secara bersamaan. Dalam fuzzy dikenal derajat keanggotan yang memiliki rentang nilai 0 (nol) hingga 1 (satu). 

Logika fuzzy merupakan suatu logika yang memiliki nilai kekaburan atau kesamaran anta-ra benar atau salah. Dalam teori logika fuzzy suatu nilai dapat bernilai benar atau salah secara bersamaan. Namun seberapa besar kebenaran dan kesalahan tergantung pada bobot keanggotaan yang dimilikinya. Adapun jenis-jenis model Fuzzy adalah sebagai berikut:


1.   MODEL FUZZY SUGENO

Fuzzy metode sugeno merupakan metode inferensi fuzzy untuk aturan yang direpresen- tasikan dalam bentuk IF – THEN, dimana output (konsekuen) system tidak berupa himpunan fuzzy, melainkan berupa konstanta atau persamaan linear. Metode tersebut akan digunakan untuk menentukan jumlah pemesanan barang berdasarkan data persediaan barang dan jumlah permintaan. adalah variabel-variabel yang akan direpresentasikan dengan fungsi keanggotaan fuzzy, selanjutnya metode sugeno untuk menentukan jumlah pemesanan barang diterapakan dalam Sistem Pendukung Keputusan (SPK). Kemudian SPK akan mengolah data-data tersebut dengan metode sugeno dan akan menampilkan keluaran (output) berupa jumlah barang yang akan dipesan.

Data persediaan barang Michio Sugeno mengusulkan penggunaan singleton sebagai fung-si keanggotaan dari konsekuen. Singleton adalah sebuah himpunan fuzzy dengan fungsi keanggotaan: pada titik tertentu mempunyai sebuah nilai dan 0 di luar titik tersebut. Pengusulan tersebut didasarkan Inferensi Mamdani tidak efisien karena melibatkan proses pencarian centroid dari area 2 dimensi.Penalaran ini hampir sama dengan penalaran Mamdani, hanya saja output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan berupa konstanta atau persamaan linear.

1.  Orde-Nol

Bentuk Umum :

IF (X is A )  (X is A )  (X is A ) (X is A )  THEN z =  k 

dengan Ai adalah himpunan fuzzy ke-Isebagai anteseden, dan k adalah konstanta (tegas) sebagai konsekuen


2. Orde-Satu

Bentuk Umum :

IF (X is A )  …. (X is A ) THEN z = p 

dengan Ai adalah himpunan fuzzy ke-I sebagai anteseden, dan pi adalah suatu konstanta ke-I dan q merupakan konstanta dalam konsekuen.

 

Perbedaan antara Mamdani dan Sugeno ada pada konsekuen. Sugeno menggunakan konstanta atau fungsi matematika dari variabel input :

Tabel Logika Fuzzy

Dimana x, y dan z adalah variabel linguistik; A dan B himpunan fuzzy untuk X dan Y, dan f (x, y) adalah fungsi matematika.Contoh :

Mengevaluasi kesehatan seseorang berdasarkan tinggi dan berat badannya.


Input    : Tinggi Dan Berat Badan

Output : Kategori Sehat

Sangat Sehat  (SS), Index =0.8
Sehat (A), Index =0.6 
Agak Sehat  (AS), Index =0.4
Tidak Sehat  (TS), Index =0.2


L1: Fuzzification (1)

Ada 3 variabel fuzzy yang dimodelkan: tinggi, berat, sehat

Rentang Keanggotaan

L2: Rules Evaluation (1)

Menentukan Rules

Tabel Kaidah Fuzzy

Dalam bentuk if-then, contoh : If sangat pendek dan sangat kurus then sangat sehat.


L2: Rules Evaluation (2)

Contoh: bagaimana kondisi kesehatan untuk orang dengan tinggi 161.5 cm dan berat 41 kg?


μsedang [161.5] =
(165-161.5) / (165-160) = 0.7

μtinggi [161.5] = (161.5-160) / (165-160) = 0.3


L2: Rules Evaluation (3)

μsangatkurus[41] = (45-41)/(45-40) = 0.8

μkurus[41] = (41-40)/(45-40) = 0.2


L2: Rules Evaluation (4)


Pilih Bobot Minimum Karena Relasi AND


L3: Defuzzification

Diperoleh:

f = {TS, AS, S, SS} = {0.3, 0.7, 0.2, 0.2}

Penentuan hasil akhir:

  1.  Max method: index tertinggi 0.7  hasil Agak Sehat

  2.   Centroid method, dengan metoda Sugeno: 

        Decision Index           = (0.3x0.2)+(0.7x0.4)+(0.2x0.6)+(0.3x0.8) /(0.3+0.7+0.2+0.2

                                            = 0.4429

       Crisp decision index  = 0.4429

       Fuzzy decision index  = 75% agak sehat, 25% sehat

 

B.    MODEL FUZZY TSUKAMOTO

   Metode Tsukamoto merupakan perluasan dari penalaran monoton.  Pada metode Tsukamoto, Setiap konsekuen pada aturan yang berbentuk IF-THEN harus dipresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang monoton. Sebagai hasilnya, output hasil inferensi dari tiap-tiap aturan diberikan secara tegas (crisp) berdasarkan α-predikat (fire strength). Hasil akhirnya diperoleh dengan menggunakan rata-rata terbobot.


CONTOH

Suatu tempat usaha kerajinan kerang di Pasir Putih Situbondo akan memproduksi tempat tisu yang terbuat dari kerang. Dari data 1 bulan terakhir, permintaan terbesar mencapai 3000 buah/hari, dan permintaan terkecil sampai 400 buah/hari. Persediaan barang digudang terbanyak sampai 250 buah/hari, dan terkecil hanya 50 buah/hari. Dengan segala keterbatasannya, sampai saat ini, tempat usaha kerajinan kerang tersebut baru mampu memproduksi barang maksimum 3500 buah/hari, serta demi efisiensi mesin dan tenaga kerja tiap hari diharapkan tempat usaha kerajinan kerang tersebut dapat memproduksi paling tidak 700 buah tempat tisu kerang. Apabila proses produksi tempat usaha kerajinan kerang tersebut menggunakan 4 aturan fuzzy sebagai berikut:

  • [R1] Jika Permintaan TURUN dan Persediaan BANYAK, maka Produksi Barang BERKURANG;
  • [R2] Jika Permintaan TURUN dan Persediaan SEDIKIT maka Produksi Barang BERKURANG;
  • [R3] Jika Permintaan NAIK dan Persediaan BANYAK maka Produksi Barang BERTAMBAH;
  • [R4] Jika Permintaan NAIK dan Persediaan SEDIKIT maka Produksi Barang BERTAMBAH;

Berapa banyak tempat tisu kerang yang harus diproduksi, jika jumlah permintaan sebanyak 2000 buah, dan persediaan di gudang masih 70 botol?


SOLUSI

Ada 3 variabel fuzzy yang akan dimodelkan, yaitu:


Permintaan
terdiri-atas 2 himpunan fuzzy, yaitu: NAIK dan TURUN




Mencari nilai keanggotaan:

Permikntaan TURUN [2000]   = (3000-2000)/2600
                                                = 0,385

Permintaan NAIK [2000]         = (2000-400)/2600
                                                = 0,615


Persediaan
terdiri-atas 2 himpunan fuzzy, yaitu: SEDIKIT dan BANYAK

 
Fungsi keanggotaan variabel Persediaan pada Contoh


mencari nilai keanggotaan:
Produksi barang
terdiri-atas 2 himpunan fuzzy, yaitu: BERKURANG dan BERTAMBAH

Fungsi keanggotaan variabel Produksi Barang pada Contoh



Sekarang kita cari nilai z untuk setiap aturan dengan menggunakan fungsi MIN pada aplikasi fungsi implikasinya:

[R1] Jika Permintaan TURUN dan Persediaan BANYAK, maka Produksi Barang BERKURANG;


[R2] Jika Permintaan TURUN dan Persediaan SEDIKIT maka Produksi Barang BERKURANG;



[R3] Jika Permintaan NAIK dan Persediaan BANYAK maka Produksi Barang BERTAMBAH;



[R4] Jika Permintaan NAIK dan Persediaan SEDIKIT maka Produksi Barang BERTAMBAH;
Dari sini kita dapat mencari berapakah nilai z, yaitu:

Senin, 01 November 2021

Konvolusi Citra dalam Pengolahan Citra Digital


Pada Kesempatan ini saya akan membahas mengenai Konsep dan Pengenalan Konvolusi Citra pada teknologi Pengolahan Citra Digital.

Konvolusi Citra

Konvolusi adalah sebuah operator matematika yang sangat penting untuk banyak operator dalam melakukan Image prosessing . Konvolusi 2 cara penggabungan 2 array dan biasanya array yang digunakan juga berbeda namun masih memilki dimensi array yang sama dan menghasilkan array ketiga yang akan mempunya dimensi yang sama juga. 

Jadi konvolusi citra dapat diartikan adalah teknik yang digunakan untuk menghaluskan suatu cita atau memperjelas citra dengan menggantikan nilai piksel gambar dengan sejumlah nilai yang sesuai atau berdekatan dengan piksel aslinya dari gambar. Namun walaupun begitu dengan menggunakan konvolusi, ukuran dari citra akan tetap sama dan tidak berubah.

Metode Filtering Dengan Konvolusi Citra

Adaptif Local Filtering

Filter adaptif dilakukan pada citra terdegradasi yang mengandung citra asli dan noise. Mean dan varians adalah dua ukuran statistik yang bergantung pada filter adaptif lokal dengan region Window mxn yang ditentukan. Rumus Adaptif Filtering dan Langkah pengerjaannya:

  • Tentukan nilai dari ukuran Window mxn
  • Hitung nilai matrix B dengan Gaussian Noise 
  • Berikan nilai 0 pada seluruh sisi matrix B 
  • Hitung nilai local dan selisih lokal dengan menggeser Window 3×3 

    nilai lokal = nilai(Window) = 0.4373
    selisih lokal = nilai(Window²) – nilai(Window²) = 0.2394

  • Berikan nilai lokal ke matrix B
  • Berikan selisih lokal ke matrix B
  • Selisih dari semua noise adalah rata-rata dari selisih lokal, oleh karena itu selisih noise = 0.1709
  • Jika (selisih noise > nilai lokal (x,y)) maka nilai lokal (x,y) = selisih noise. Berikut representasi posisi pixel (x,y) dalam 2 dimensi
  • Final Image = B – (selisih noise/selisih nilai lokal)(B-nilai lokal) 

Tujuan dari Adaptive Local Filtering adalah untuk memperbaiki gambar dengan menjadikan noise yang ada pada gambar memudar.

Source Code

A = imread(‘peppers.png’);
B = rgb2gray(A);
sz = size(B,1)*size(B,2);
%Add gaussian noise with mean 0 and variance 0.005
B = imnoise(B,’gaussian’,0,0.005);
figure,imshow(B); title(‘Image with gaussian noise’);
B = double(B);
%Define the window size mxn
M = 5;
N = 5;
%Pad the matrix with zeros on all sides
C = padarray(B,[floor(M/2),floor(N/2)]);
lvar = zeros([size(B,1) size(B,2)]);
lmean = zeros([size(B,1) size(B,2)]);
temp = zeros([size(B,1) size(B,2)]);
NewImg = zeros([size(B,1) size(B,2)]);
for i = 1:size(C,1)-(M-1)
for j = 1:size(C,2)-(N-1) 
temp = C(i:i+(M-1),j:j+(N-1));
tmp =  temp(:);
%Find the local mean and local variance for the local region      
lmean(i,j) = mean(tmp);
lvar(i,j) = mean(tmp.^2)-mean(tmp).^2;     
end
end
%Noise variance and average of the local variance
nvar = sum(lvar(:))/sz;
%If noise_variance > local_variance then
local_variance=noise_variance
lvar = max(lvar,nvar); 

%Final_Image = B- (noise variance/local variance)*(B-local_mean);
NewImg = nvar./lvar;
NewImg = NewImg.*(B-lmean);
NewImg = B-NewImg;
%Convert the image to uint8 format.\
NewImg = uint8(NewImg);
figure,imshow(NewImg);title(‘Restored Image using Adaptive Local filter’);

Output

Algoritma

  • setelah pengguna menjalankan source code filter 
  • selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. 
  • Setelah itu gambar tersebut akan diolah sesuai dengan source code filter ini. 
  • Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah.

Flowchart


B. Gaussian Filtering / Gaussian Blur 

Gaussian Blur atau gaussian filter merupakan teknik untuk memburamkan gambar. Biasanya digunakan untuk mengurangi noise dan detail dari gambar tersebut. Rumus Gaussian Kernel 2 dimensi:

Langkah pengerjaan Design Kernel

  • Gunakan standar simpangan, sigma = 0,6 dan ukuran kernel = 3×3.
  • Lebar kernel adalah X=3 dan tinggi kernel adalah Y = 3 
  • Kernel Gaussian bagian tengah (disini 0.4421) memiliki nilai tertinggi dan intensitas dari pixel lainnya menurun berasamaan dengan jarak dari bagian tengah yang meningkat.
  • Sekarang nilai kernel Gaussian adalah sebagai berikut. 
  • Konvolusi kernel dan bagian lokal dalam gambar Berdasarkan bagian lokal dalam gambar
  • Konvolusikan area yang di pilih dan kernel
  • Jumlahkan nilai tersebut : 1.8692 + 9.7009 + 4.3706 + 7.2757 + 38.4624 + 17.8585 + 1.84142 + 9.1497 + 4.4256 = 94.9269Pada konvolusi area lokal dan kernel Gaussian memberikan nilai intensitas tertinggi ke bagian tengah bagian lokal (38.4624) dan piksel yang tersisa memiliki intensitas yang lebih sedikit saat jarak dari pusat meningkat. Jumlahkan hasilnya dan simpan di lokasi piksel saat ini (intensitas = 94.9269) dari gambar. 
  • Lakukan operasi di atas di semua bagian. Hasil akhir dari gaussian filter adalah


Tujuan

Tujuan dari gaussian filtering adalah untuk menghilangkan noise dengan memudarkan gambar, namun dengan konsekuensi detail gambar juga ikut berkurang.

Source code

%Read an Image
Gambar = imread(‘peppers.png’);
Img = rgb2gray(Gambar);
A = imnoise(Img,’Gaussian’,0.04,0.003);
%Image with noise
figure,imshow(A);
I = double(A);
%Design the Gaussian Kernel
%Standard Deviation
sigma = 1.76;
%Window size
sz = 4;
[x,y]=meshgrid(-sz:sz,-sz:sz);
M = size(x,1)-1;
N = size(y,1)-1;
Exp_comp = -(x.^2+y.^2)/(2sigmasigma);
Kernel= exp(Exp_comp)/(2pisigma*sigma);
%Initialize
Output=zeros(size(I));
%Pad the vector with zeros
I = padarray(I,[sz sz]);
%Convolution
for i = 1:size(I,1)-M
for j =1:size(I,2)-N
    Temp = I(i:i+M,j:j+M).*Kernel;
    Output(i,j)=sum(Temp(:));
end
end
%Image without Noise after Gaussian blur
Output = uint8(Output);
figure,imshow(Output);

Output

Algoritma

  1. Pengguna menjalankan source code filter
  2. selanjutnya pengguna diminta untuk memilih salah satu gambar untuk diolah. 
  3. Setelah itu gambar tersebut akan diolah sesuai dengan source code filter.
  4. Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan setelah diolah.

Flowchart


C. Oil Painting Filtering

Untuk mendapatkan efek seperti lukisan, tentukan matriks jendela kecil berukuran m kali n. Salin nilai piksel gambar asli ke dalam matriks dan temukan histogram dari setiap nilai. Temukan nilai piksel maksimum yang terjadi dan ganti posisi saat ini dengan nilai kejadian maksimum.

Tujuan dari Oil Painting Filtering adalah untuk menghasilkan gambar yang menyerupai hasil dari lukisan minyak.

Source Code

A=imread(‘fabric.png’);
figure,imshow(A)
%Define the matrix size of your convience.
m=5;
n=6;
Image=uint8(zeros([size(A,1)-m,size(A,2)-n,3]));
%Calculate the histogram for each RGB value.
for v=1:3
for i=1:size(A,1)-m
for j=1:size(A,2)-n
    mymask=A(i:i+m-1,j:j+n-1,v);
    h=zeros(1,256);
    for x=1:(m*n)
        h(mymask(x)+1)=h(mymask(x)+1)+1;
    end
%Maximum occurring value and the position is obtained
    [maxvalue,pos]=max(h);
    Image(i,j,v)=pos-1;
end
end
end
figure,imshow(Image);

Output

Algoritma

  • Setelah pengguna menjalankan source code filter.
  • Pengguna diminta untuk memilih salah satu gambar untuk diolah. 
  • Setelah itu gambar tersebut akan diolah sesuai dengan source code filter.
  • Hasilnya akan ditampilkan 2 gambar, citra sebelum di olah dan citra setelah diolah.

Flowchart


3. Perbedaan Metode