Showing posts with label PC. Show all posts
Showing posts with label PC. Show all posts

Perbandingan Deteksi Tepi Dengan Metode Robert, Prewitt, Sobel, Canny dan Laplacian

Ini merupakan perbandingan metode deteksi tepi antara metode Robert, Prewitt, Sobel, Canny dan Laplacian
function [ output_args ] = tepideteksi( input_args )
clear all;
gmbr = imread('Elephant_256x256.jpg');
abu2=rgb2gray(gmbr);
%abu2=gmbr;
rbt = edge(abu2,'robert');
pwt = edge(abu2,'prewitt');
sbl = edge(abu2,'sobel');
cny = edge(abu2,'canny');
lap =fspecial('log',5);
lap_log=uint8(round(filter2(lap,abu2)));

clf(subplot(2,3,1),imshow(gmbr));
title('Gambar Asli');
hold on;
%subplot(2,3,2), imshow(hp)
%title('Gambar Hitam Putih');

subplot(2,3,2), imshow(rbt)
title('Gambar Metode Robert');
subplot(2,3,3), imshow(pwt)
title('Gambar Metode Prewitt');
subplot(2,3,4), imshow(sbl)
title('Gambar Metode Sobel');
subplot(2,3,5), imshow(cny);
title('Gambar Metode Canny');
subplot(2,3,6), imshow(lap_log);
title('Gambar Metode Laplacian');

end

Dari hasil tersebut didapatkan bahwa canny merupakan hasil yang terbaik karena Canny mendeteksi tepi dengan mengidentifikasi maksima local dari gradien pada citra. Metode ini menggunakan dua nilai ambang/nilai batas (threshold) untuk mendeteksi tepi yang lemah dan yang kuat. Tepi yang lemah akan dihasilkan pada keluaran hanya jika ia terhubung denga tepi yang kuat. Oleh karena itu metode ini kemudian menjadi lebih diandalkan dari metode yang lain dari segi kehandalannya dalam membedakan ‘noise’ pada citra sekaligus mempunyai kemungkinan yang lebih besar dalam mendeteksi tepi-tepi yang lemah.
Read more.....

merubah RGB ke HSI dengan matlab

Contoh perbahan model warna lainnya yaitu dari RGB ke HSI
function rgbtohsi(x)
F=imread('baboon24.bmp');
F=im2double(F);
%F=double(x);
r=F(:,:,1);
g=F(:,:,2);
b=F(:,:,3);
th=acos((0.5*((r-g)+(r-b)))./((sqrt((r-g).^2+(r-b).*(g-b)))+eps));
H=th;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
S=1-3.*(min(min(r,g),b))./(r+g+b+eps);
I=(r+g+b)/3;
hsi=cat(3,H,S,I);
HE=H*2*pi;
HE=histeq(HE);
HE=HE/(2*pi);
SE=histeq(S);
IE=histeq(I);
choice=input('1:RGB to HSI\n2:Display Hue, Saturation and Intensity Images\n3:HSI to RGB\n4:Hue-Equalization\n5:Saturation-Equalization\n6:Intensity-Equalization\n7:HSI-Equalization\n Enter your choice :');
switch choice
case 1
figure,imshow(F),title('RGB Image');
figure, imshow(hsi),title('HSI Image');
case 2
figure,imshow(F),title('RGB Image');
figure, imshow(H),title('Hue Image');
figure, imshow(S),title('Saturation Image');
figure, imshow(I),title('Intensity Image');
case 3
C=hsitorgb(hsi);
figure,imshow(hsi),title('HSI Image');
figure, imshow(C),title('RGB Image');
case 4
RV=cat(3,HE,S,I);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI Image');
figure,imshow(F),title('RGB Image');
figure, imshow(C),title('RGB Image-Hue Equalized');
case 5
RV=cat(3,H,SE,I);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI Image');
figure,imshow(F),title('RGB Image');
figure, imshow(C),title('RGB Image-Saturation Equalized');
case 6
RV=cat(3,H,S,IE);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI Image');
figure,imshow(F),title('RGB Image');
figure, imshow(C),title('RGB Image-Intensity Equalized');
case 7
RV=cat(3,HE,SE,IE);
C=hsitorgb(RV);
figure,imshow(hsi),title('HSI Image');
figure,imshow(F),title('RGB Image');
figure, imshow(C),title('RGB Image-HSI Equalized');
otherwise
display('Wrong choice');
end
end
function C=hsitorgb(hsi)
HV=hsi(:,:,1)*2*pi;
SV=hsi(:,:,2);
IV=hsi(:,:,3);
R=zeros(size(HV));
G=zeros(size(HV));
B=zeros(size(HV));
%RG Sector
id=find((0<=HV)& (HV<2*pi/3)); B(id)=IV(id).*(1-SV(id)); R(id)=IV(id).*(1+SV(id).*cos(HV(id))./cos(pi/3-HV(id))); G(id)=3*IV(id)-(R(id)+B(id)); %BG Sector id=find((2*pi/3<=HV)& (HV<4*pi/3)); R(id)=IV(id).*(1-SV(id)); G(id)=IV(id).*(1+SV(id).*cos(HV(id)-2*pi/3)./cos(pi-HV(id))); B(id)=3*IV(id)-(R(id)+G(id)); %BR Sector id=find((4*pi/3<=HV)& (HV<2*pi)); G(id)=IV(id).*(1-SV(id)); B(id)=IV(id).*(1+SV(id).*cos(HV(id)-4*pi/3)./cos(5*pi/3-HV(id))); R(id)=3*IV(id)-(G(id)+B(id)); C=cat(3,R,G,B); C=max(min(C,1),0); end

Read more.....

Merubah model warna RGB ke YIQ pada matlab

Kali ini contoh merubah model warna RGB ke model warna YIQ
function rgbtoyiq(x)

F=imread('baboon24.bmp');
YIQ = rgb2ntsc(F);
Y=YIQ(:,:,1);
I=YIQ(:,:,2);
Q=YIQ(:,:,3);

subplot(2,2,1);
imshow(F);
title ('gambar Asli');


subplot(2,2,2);
imshow(YIQ);
title ('gambar YIQ');

end
Read more.....

Merubah model warna RGB ke CMY pada matlab

ini merupakan contoh koding untuk merubah citra model RGB (Red Green Blue) menjadi CMY (Cyan Magenta Yellow)
function rgbcmy(x)
F=imread('baboon24.bmp');
F=im2double(F);
%F=double(x);
r=F(:,:,1);
g=F(:,:,2);
b=F(:,:,3);

C=(1-r);
M=(1-g);
Y=(1-b);
CMY=cat(3,C,M,Y);

HE=histeq(C);
SE=histeq(M);
IE=histeq(Y);

figure,imshow(F),title('RGB Image');
figure, imshow(CMY),title('CMY Image');
end
Read more.....

Membuat histogram citra berwarna dengan matlab

Berikut contoh koding matlab untuk membuat histogram pada citra berwarna
function [ output_args ] = tgspc( input_args )
gambar=imread('baboon24.bmp'); %——–membaca file gambar

red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna merah

green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel warna hijau

blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel warna biru

gray=0.3*red+0.5*green+0.2*blue ;
figure; imshow(gambar);
figure; subplot(4,1,1);
imhist(red);
title('Merah');

subplot (4,1,2);
imhist(green);
title('Hijau');

subplot (4,1,3);
imhist(blue);
title('Biru');

subplot(4,1,4);
imhist(gray);
title('Abu-abu');

end
Read more.....

Histogram Equalisation pada matlab

berikut contoh koding pada matlab untuk membuat Histogram Equalisation pada sebuah citra
Buat sebuah m-file pada matlab..
copykan koding berikut
function [ output_args ] = Histeq( input_args )
%membaca gambar yang akan diproses
A = imread('camera.bmp');
%mengubah gambar menjadi grayscale
B = 0.5*A(:,:,1);

%melakukan proses penyamaan histogram terhadap citra
C = histeq(B);
%menampilkan citra asli dan histogramnya
figure;subplot(2,1,1);
imshow(A);
title('image asli');
subplot(2,1,2);
imhist(A);
title('histogram gambar asli');
%menampilkan citra yang telah digrayscale beserta histogramnya
figure;subplot(2,1,1);
imshow(B);
title('image grayscale');
subplot(2,1,2);
imhist(B);
title('histogram gambar grayscale');
%menampilkan citra yang telah diequalisasi beserta histogramnya
figure;subplot(2,1,1);
imshow(C);
title('image equalisasi');
subplot(2,1,2);
imhist(C);
title('histrogram equalisasi');
end

note : untuk membuat histogram (melihat derjat keabuan) pada matlab cukup menggunakan fungsi imhist(gambarnya);

jika anda lihat histogram pada citra awal histogramnya, tingkat keabuan cendrung lebih banyak disebelah kiri dan tengah .
fungsi dari histogram equalisasi adalah meratakan derjat keabuan sehingga gambar/citra tidak terlalu gelap atau terlalu terang..
hasi dari histogram equalisasi



Read more.....

Aplikasi Rotasi Image dengan matlab 7

untuk membuat
alpikasi pengolahan citra rotasi kita menggunakan matlab 7 karena pada matlab 7 sudah menyediakan fasilitas GUI.
langusng saja buka matlab 7 anda, kemudian pilih file> new> GUI
pertama kita akan membuat menu dengan menu editor.
pada tampilan GUI klik icon menu editor.

setelah keluar jendela menu editor buat sebuah menu dengan label "open". Accelerator nya Ctrl + O ganti tag nya menjadi "buka"
buat menu baru label "save". Accelerator nya Ctrl + S ganti tag nya menjadi "simpan"
buat 1 menu lagi dengan label "exit" tag "keluar", klik ok jika anda sudah selesai membuat menu.

langkah selanjutnya adalah membuat static text dan ubah property nya dengan melakukan double click.
text1 ubah string : "Program Aplikasi untuk Merotasi Citra"
text2 ubah string : "Citra Asli"
text3 ubah string : "Citra Hasil Rotasi"
text4 ubah string : "Derajat Rotasi"

untuk tag nya biarkan saja default text1, text2 dll. guna tag yaitu untuk di function nya nanti. jadi ketika kita ingin memberi aksi pada text1 kita tinggal menambahkan kode pada function text1

Kemudian buat 2 axes.
buat 1 edit text

terakhir buat slider ubah propery min nya 1.0 dan max 360.0
susun sehingga seperti ini

simpan file anda dan secara otomatis anda akan mendapatkan file dengan extensi .m
selesai untuk GUI sekarang kita ke programming, bukalah file .m anda.

cari function slider1_Callback(hObject, eventdata, handles)
tambahkan koding berikut
% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
nilai_slider = get(handles.slider1,'Value');
handles.nilai_slider=round(nilai_slider);
guidata(hObject,handles);
set(handles.edit1,'String',handles.nilai_slider);
hasil = imrotate(handles.data1,handles.nilai_slider,'bilinear','crop');
handles.hasil=hasil;
guidata(hObject,handles);
axes(handles.axes2);
imshow(hasil);

kemudian cari function buka_Callback(hObject, eventdata, handles)
tambahkan
[nama_file1, nama_path1]=uigetfile(...
{'*.bmp;*.jpg','File Citra (*.bmp,*.jpg)';
'*.bmp','File Bitmap (*.bmp)';...
'*.jpg','File jpeg (*.jpg)';
'*.*','Semua File (*.*)'},...
'Buka File Citra Host/Asli');
if ~isequal(nama_file1, 0)
handles.data1=imread(fullfile(nama_path1,nama_file1));
guidata(hObject,handles);
handles.current_data1=handles.data1;
axes(handles.axes1);
imshow(handles.current_data1);
axes(handles.axes2);
imshow(handles.current_data1);
else
return;
end

selanjutnya pada bagian function simpan_Callback(hObject, eventdata, handles)
[nama_file_simpan, path_simpan]=uiputfile(...
{'*.bmp','file citra (*.bmp)';
'*.bmp','citra bmp (*.bmp)';...
'*.*','Semua File (*.*)'},...
'Menyimpan Citra Hasil Rotasi');
imwrite(handles.hasil,fullfile(path_simpan,nama_file_simpan),'BMP');

function keluar_Callback(hObject, eventdata, handles)
selection = questdlg(['Tutup ' get(handles.figure1,'Name') '?'],...
['Tutup ' get(handles.figure1,'Name') '...'],...
'Ya','Tidak','Ya');
if strcmp(selection,'Tidak')
return;
end
delete(handles.figure1)

selesai jalankan aplikasi dengan mengklik Run.

download sourcenya disini..
Read more.....
Related Posts Plugin for WordPress, Blogger...