Anda di halaman 1dari 10

Nama : Muhammad Masrizkar

NRP : 5001201139
Kelas : Pengolahan Citra Digital
Dosen : Dr. Muhammad Arief Bustomi, S.Si., M.Si.

TUGAS ETS

1. Buatlah program matlab untuk operasi rotasi citra 15 derajat dengan sumbu
rotasi ujung kiri atas dan terapkan hasilnya pada citra anda!
Source Code Tugas 1.
clc
clear
close all

% Mata kuliah Pengolahan Citra Digital 2023


% Tugas 1. Rotasi citra 15 derajat

% - Step Proses

% --- 1. Memuat citra


citra = imread('Pantai RIZKAR.jpg');
% Citra'Pantai.jpg' memiliki ukuran piksel 900x1600 px
% Fungsi imread untuk membaca citra 'Pantai.jpg' menjadi sebuah matriks

% --- 2. Mengkonversi sudut 15 derajat menjadi sudut 0.2618 radian


sudut_derajat = 15;
sudut_radian = deg2rad(sudut_derajat);
% Fungsi deg2rad untuk mengkonversi derajat (degrees) menjadi radian (rad)

% --- 3. Menghitung ukuran citra yang akan dirotasi fungsi 'size'


[tinggi, lebar, ~] = size(citra);
rotasi_lebar = round(abs(lebar*cos(sudut_radian)) + ...
abs(tinggi*sin(sudut_radian))); % 1778 px
rotasi_tinggi = round(abs(lebar*sin(sudut_radian)) + ...
abs(tinggi*cos(sudut_radian))); % 1283 px
% Rotasi sudut dengan trigonometri

% --- 4. Merotasi matriks dengan sin dan cos dari sudut rotasi
matriks_rotasi = [cos(sudut_radian) -sin(sudut_radian) 0; ...
sin(sudut_radian) cos(sudut_radian) 0; 0 0 1];

% --- 5. Translasi matriks untuk sumbu rotasi dari ujung kiri atas
matriks_translasi = [1 0 0; 0 1 0; -lebar/2 -tinggi/2 1];

% --- 6. Inverse translansi matriks untuk rotasi mengembalikkan ke tengah


inverse_matriks_translasi = [1 0 0; 0 1 0; lebar/2 tinggi/2 1];

% --- 7. Menghitung matriks transformasi affine


matriks_affine = inverse_matriks_translasi * matriks_rotasi ...
* matriks_translasi;
% Matriks transformasi affine diperoleh dengan mengalikan ...
% matriks translasi dan matriks rotasi

% --- 8. Menampilkan operasi rotasi matriks transformasi affine


citra_terotasi = imwarp(citra, affine2d(matriks_affine));
% Fungsi imwarp untuk operasi rotasi pada matriks tersebut

% --- 9. Menampilkan hasil citra asli dan sesudah dirotasi 15 derajat


figure('Renderer', 'painters', 'Position', [10 120 900 600]);
% Fungsi figure untuk menampilkan citra dalam 1 jendela

% --- 9a. Citra asli


subplot(1,2,1);
imshow(citra);
title('Citra Asli');
% Fungsi subplot untuk pengaturan posisi citra dalam 1 figure

% --- 9b. Hasil citra terotasi


subplot(1,2,2);
imshow(citra_terotasi);
title('Citra Terotasi');
% Fungsi imshow untuk menampilkan citra
% Fungsi title sebagai judul header pada citranya

Running Code Tugas 1.


Citra Asli
2. Buatlah program matlab untuk operasi tresholding citra untuk tiga variasi nilai
treshold 60, 120, dan 180 dan terapkan hasilnya pada citra anda!
Source Code Tugas 2.
clc
clear
close all

% Mata kuliah Pengolahan Citra Digital 2023


% Tugas 2. Operasi Threshold foto dengan 3 variasi nilai 60, 120, 180
% a1 min = 0
% a2 maks = 255

% - Step Proses

% --- 1. Memuat citra


% Citra'Pantai.jpg' memiliki ukuran piksel 900x1600 px
citra = imread('Pantai RIZKAR.jpg');
% Fungsi imread untuk membaca citra 'Pantai.jpg' menjadi sebuah matriks

% --- 2. Mengkonversi citra rgb menjadi grayscale (hitam-putih)


citra_gray = rgb2gray(citra);
% Fungsi rgb2gray untuk mengkonversi citra rgb menjadi grayscale ...
% (hitam-putih)

% --- 3. Memberi nilai-nilai thresholding


threshold60 = 60;
threshold120 = 120;
threshold180 = 180;

% --- 4. Operasi thresholding


% Operator (>) untuk membuat citra biner 1/0 (binary_image) sebagai ...
% operasi thresholding
citra_biner60 = citra_gray > threshold60;
citra_biner120 = citra_gray > threshold120;
citra_biner180 = citra_gray > threshold180;

% --- 5. Menampilkan citra asli


figure_asli = figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(citra);
title('Citra asli');
% Fungsi figure untuk menampilkan gambar dalam 1 jendela
% Fungsi imshow untuk menampilkan citra

% --- 6. Menampilkan citra-citra hasil operasi thresholding


figure_threshold = figure('Renderer', 'painters', 'Position', [10 120 ...
900 600]);
% Fungsi figure_threshold untuk menampilkan jendela hasil citra dimuat

% --- 6a. Hasil citra grayscale (hitam-putih)


subplot(2,2,1);
imshow(citra_gray);
title('Citra Grayscale');
% Fungsi subplot untuk pengaturan posisi-posisi citra dalam 1 figure

% --- 6b. Hasil citra Threshold 60


subplot(2,2,2);
imshow(citra_biner60);
title(['Citra Threshold = ' num2str(threshold60)]);
% Fungsi num2str mengubah type data 'number' pemberian nilai threshold ...
% ke 'string' untuk header

% --- 6c. Hasil citra Threshold 120


subplot(2,2,3);
imshow(citra_biner120);
title(['Citra Threshold = ' num2str(threshold120)]);
% Fungsi title sebagai judul header pada citranya

% --- 6d. Hasil citra Threshold 180


subplot(2,2,4);
imshow(citra_biner180);
title(['Citra Threshold = ' num2str(threshold180)]);

Running Code Tugas 2.


Citra Asli
3. Buatlah program matlab untuk penentuan histogram untuk masing-masing
komponen warna (komponen R, G, dan B) dan grayscale dari citra dan terapkan
hasilnya pada citra anda!
Source Code Tugas 3.
clc
clear
close all

% Mata kuliah Pengolahan Citra Digital 2023


% Tugas 3. Penentuan Histogram komponen R-G-B dan grayscale dari citra

% - Step Proses

% --- 1. Memuat citra


% Citra'Pantai.jpg' memiliki ukuran piksel 900x1600 px
citra = imread('Pantai RIZKAR.jpg');
% Fungsi imread untuk membaca citra 'Pantai.jpg' menjadi sebuah matriks

% --- 2. Pemilahan citra untuk red, green, dan blue channel


red_channel = citra(:, :, 1);
green_channel = citra(:, :, 2);
blue_channel = citra(:, :, 3);
% Citra red untuk indeks penomoran 1, citra green untuk indeks penomoran 2,
% dan citra green untuk penomoran 3

% --- 3. Mengkonversi citra rgb menjadi grayscale (hitam-putih)


citra_gray = rgb2gray(citra);
% Fungsi rgb2gray untuk mengkonversi citra rgb menjadi grayscale ...
% (hitam-putih)

% --- 4. Operasi Histogram


red_histogram = imhist(red_channel);
green_histogram = imhist(green_channel);
blue_histogram = imhist(blue_channel);
gray_histogram = imhist(citra_gray);
% Fungsi imhist untuk menghitung penyebaran intensitas piksel citra

% --- 5. Menampilkan histogram dari citra


figure1 = figure('Renderer', 'painters', 'Position', [10 120 900 600]);
% Fungsi figure 1 untuk menampilkan citra RGB dalam jendela 1

% --- 5a. Hasil citra asli


subplot(2,2,1);
imshow(citra);
title('Citra asli');
% Fungsi imshow untuk menampilkan citra

% --- 5b. Hasil histogram citra red channel


subplot(2,2,2);
bar(red_histogram, 'red');
title('Red Channel Histogram');
% Fungsi subplot untuk pengaturan posisi-posisi citra dalam 1 figure

% --- 5c. Hasil histogram citra green channel


subplot(2,2,3);
bar(green_histogram, 'green');
title('Green Channel Histogram');
% Fungsi bar untuk menampilkan grafik bar histogram dengan style warna

% --- 5d. Hasil histogram citra blue channel


subplot(2,2,4);
bar(blue_histogram, 'blue');
title('Blue Channel Histogram');
% Fungsi title sebagai judul header pada citranya

figure2 = figure('Renderer', 'painters', 'Position', [10 120 900 600]);


% Fungsi figure 2 untuk menampilkan citra grayscale dalam jendela 2

% --- 5e. Hasil citra grayscale


subplot(1,2,1);
imshow(citra_gray);
title('Citra Grayscale');

% --- 5f. Hasil histogram citra grayscale


subplot(1,2,2);
bar(gray_histogram, 'black');
title('Grayscale Histogram');

Running Code Tugas 3.


4. Buatlah program matlab untuk operasi konvolusi citra menggunakan matriks
filter Kernel dan terapkan hasilnya pada citra anda!
Source Code Tugas 4.
clc
clear
close all

% Mata kuliah Pengolahan Citra Digital 2023


% Tugas 4. Operasi Konvolusi citra dengan matriks filter Kernel

% - Step Proses

% --- 1. Memuat citra


% Citra'Pantai.jpg' memiliki ukuran piksel 900x1600 px
citra = imread('Pantai RIZKAR.jpg');
% Fungsi imread untuk membaca citra 'Pantai.jpg' menjadi sebuah matriks

% --- 2. Mengkonversi citra rgb menjadi grayscale (hitam-putih)


citra_gray = rgb2gray(citra);
% Fungsi rgb2gray untuk mengkonversi citra rgb menjadi grayscale ...
% (hitam-putih)

% --- 3. Mendefinisikan filter Kernel dengan matriks


kernel_filter = [-1 -1 -1; -1 8 -1; -1 -1 -1];
% --- 4. Operasi Konvolusi menggunakan filter Kernel
Citra_terfilter = conv2(double(citra_gray), kernel_filter, 'same');
% Fungsi conv2 untuk operasi konvolusi pada citra grayscale dengan ...
% filter kernel
% Opsi 'same' untuk menyamakan ukuran citra terfilter dan citra aslinya

% --- 5. Menampilkan citra asli dan hasil citra filter


% --- 5a. Citra asli
figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(citra);
title('Citra asli');
% Fungsi figure untuk menampilkan gambar dalam 1 jendela

% --- 5b. Hasil citra filter Kernel


figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(uint8(Citra_terfilter));
title('Citra Filter Kernel');
% Fungsi uint8 untuk menampilkan konversi citra hasil filter ke format ...
% integer 8-bit
% Fungsi imshow untuk menampilkan citra
% Fungsi title sebagai judul header pada citranya

Running Code Tugas 4.

Citra Filter Kernel


5. Buatlah program matlab untuk operasi opening citra dan closing citra dan
terapkan hasilnya pada citra anda!
Source Code Tugas 5.
clc
clear
close all

% Mata kuliah Pengolahan Citra Digital 2023


% Tugas 5. Operasi Morfologi (Opening dan Closing Citra)

% - Step Proses

% --- 1. Memuat citra


citra = imread('Pantai RIZKAR.jpg');
% Citra'Pantai.jpg' memiliki ukuran piksel 900x1600 px
% Fungsi imread untuk membaca citra 'Pantai.jpg' menjadi sebuah matriks

% --- 2. Mengkonversi citra rgb menjadi grayscale (hitam-putih)


citra_gray = rgb2gray(citra);
% Fungsi rgb2gray untuk mengkonversi citra rgb menjadi grayscale ...
% (hitam-putih)

% --- 3. Strukturisasi elemen untuk operasi morfologi


% Define the structuring element for the morphology operations
se = strel('disk', 5);
% Fungsi strel untuk strukturisasi elemen pada operasi morfologi ...
% Elemen penataan berbentuk 'disk' dengan radius 5 piksel digunakan

% --- 4. Operasi opening


citra_opening = imopen(citra_gray, se);
% Fungsi imopen untuk operasi opening pada citra grayscale dengan ...
% mendefinisikan elemen strukturisasinya 'se'

% --- 4. Operasi closing


citra_closing = imclose(citra_gray, se);
% Fungsi imopen untuk operasi closing pada citra grayscale dengan ...
% mendefinisikan elemen strukturisasinya 'se'

% --- 5. Menampilkan citra asli, operasi opening, dan operasi closing


% --- 5a. Citra Asli
figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(citra);
title('Citra Asli');
% Fungsi figure untuk menampilkan citra dalam 1 jendela

% --- 5b. Hasil citra operasi opening


figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(citra_opening);
title('Citra Operasi Opening');
% Fungsi imshow untuk menampilkan citra

% --- 5c. Hasil citra operasi closing


figure('Renderer', 'painters', 'Position', [10 120 900 600]);
imshow(citra_closing);
title('Citra Operasi Closing');
% Fungsi title sebagai judul header pada citranya

Running Code Tugas 5.

Citra Operasi Opening

Citra Operasi Closing

Anda mungkin juga menyukai