Tugas 1

Buatlah sebuah fungsi yang dapat mengubah citra lego berwarna menjadi citra lego biner dengan nilai threshold tertentu.

% Tugas 1 Analisis Citra dan Visi Komputer
%
% Nama : Afwan Badru Naim
% NRP : 5105100169

%fungsi untuk mengubah image ke dalam bentuk biner dengan nilai treshold tertentu
function bw = myFunct(im, thresh)

%dapatkan input berupa image
input = imread(im);

%ubah image ke dala, bentuk grayscale
grayscale = rgb2gray(input);

%gunakan nilai threshold untuk mengubah image grayscale ke dalam bentuk binary
threshold = thresh/255;
binary = im2bw(grayscale,threshold);

%nilai threshold juga bisa didapatkan dengan menggunakan Global Image
%Threshold yang didapatkan dari fungsi bawaan Matlab, yaitu graythresh yang
%secara otomatis dapat menggenerate nilai global image threshold dari image
%grayscale yang diberikan dengan menggunakan metode Otsu.
%threshold = graythresh(grayscale);

%inverse binary image
inverse = ~binary;

%tampilkan hasil fungsi
imshow(binary),figure,imshow(inverse);

BWL = bwlabel(inverse);
imagesc(BWL), colormap(gray);
pixval on;

Snapshot hasil running program :

lego1.png versi biner dengan treshold 160
object = BWL==16; object = BWL==21;

Tugas 2

% MOMENTS
%
% Fungsi menghitung momen sebuah citra biner dan mengembalikan
% area, centroid, sudut dari sumbu inertia minimum, dan sebuah
% ukuran ‘kebulatan’. Fungsi ini mengasumsikan bahwa hanya ada
% satu obyek pada citra biner.
%
% function [area, centroid, theta, roundness] = moments(im)
%
% Argument: im – citra biner berisi nilai 0 atau 1
%
% Returns: area – luasan citra biner
% centroid – vektor dengan 2 elemen
% theta – sudut sumbu kelembaman minimum (radian)
% roundness – ratio minimum inertia/maximum inertia.
%
% Fungsi ini juga menampilkan citra dan letak dari
% centroid dan sumbu inertia minimum. Area yang dihitung
% harus ditampilkan sebagai title di citra.

function [area, centroid, thetamin, roundness] = moments(im)

%dapatkan ukuran matriks image
[rows,cols] = size(im);

%dapatkan koordinat x
x = ones(rows,1)*[1:cols];
%dapatkan koordinat y
y = [1:rows]’*ones(1,cols);

%hitung area (luasan image)
area = sum(sum(im));
%hitung mean x
meanx = sum(sum(double(im).*x))/area;
%hitung mean y
meany = sum(sum(double(im).*y))/area;
%dapatkan vektor centroid
centroid = [meanx, meany];

% dapatkan invers x dan y

x = x – meanx;
y = y – meany;

a = sum(sum(double(im).*x.^2));
b = sum(sum(double(im).*x.*y))*2;
c = sum(sum(double(im).*y.^2));

% dapatkan nilai theta
theta = 0.5 * atan2(b, a-c’);

%hitung roundness
denom = b^2 + (a-c)^2;
if denom == 0
thetamin = 2*pi*rand;
thetamax = 2*pi*rand;
roundness = 1;
else
%solusi positif
sin2thetamin = b/sqrt(denom);
cos2thetamin = (a-c)/sqrt(denom);
thetamin = atan2(sin2thetamin, cos2thetamin)/2;

%solusi negatif
sin2thetamax = -sin2thetamin;
cos2thetamax = -cos2thetamin;
thetamax = atan2(sin2thetamax, cos2thetamax)/2;

Imin = 0.5*(c+a) – 0.5*(a-c)*cos2thetamin – 0.5*b*sin2thetamin;
Imax = 0.5*(c+a) – 0.5*(a-c)*cos2thetamax – 0.5*b*sin2thetamax;

roundness = Imin/Imax;
end

% dapatkan garis sumbu inertia
rho = sqrt(area)/(roundness + 0.1) + 5 ;
[X1,Y1] = pol2cart(thetamin, rho);
[X2,Y2] = pol2cart(thetamin + pi, rho);

imshow(im);
hold;
line([X1 + meanx, X2 + meanx],[Y1 + meany, Y2 + meany])
plot(meanx, meany,‘r+’)
title([‘Object area : ‘, num2str(area)], ‘fontweight’, ‘bold’,‘fontsize’, 10)
xlabel([‘Centroid : [‘, num2str(centroid), ‘] Theta : ‘,num2str(theta), ‘ Roundness : ‘, num2str(roundness)])
hold;

Snapshot hasil running program :

input = imread(‘object2.png’);
gray = rgb2gray(input);
bw = gray > 160;
t = moments(bw);
input = imread(‘object3.png’);
gray = rgb2gray(input);
bw = gray > 160;
t = moments(bw);
input = imread(‘object17.png’);
gray = rgb2gray(input);
bw = gray > 160;
t = moments(bw);
input = imread(‘object7.png’);
gray = rgb2gray(input);
bw = gray > 160;
t = moments(bw);

One Response to “Portofolio 1”

  1. afwanbadrunaim Says:

    Wah cssnya error …
    shit
    shit
    shit

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s