i
SIMULASI PEMBUATAN POLA CITRA UNTUK MENGETAHUI JARAK ANTARA NANOPARTIKEL DENGAN MENGGUNAKAN LATTICE
GENERATOR DAN LATTICE PARAMETER ANALYZER
Laurensius Morris 0522018
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email : morris_heavenz@yahoo.com
ABSTRAK
Perkembangan teknologi nano di era modern saat ini telah berkembang dengan pesat. Nanoteknologi akan membuat suatu material benda menjadi lebih kuat dan ringan. Contohnya seperti dalam membuat material baja yang kuat untuk body kendaraan bermotor. Dalam menentukan material yang baik diperlukan penelitian tentang nanopartikel. Untuk menganalisa dan meneliti benda yang berukuran nanopartikel dibutuhkan suatu mikroskop elektron yang dapat menghasilkan gambar nanopartikel material tersebut. Gambar hasil scanning dari mikroskop elektron tersebut mempunyai pola dan jarak yang berbeda-beda tergantung dari material yang akan dianalisa.
Pada Tugas Akhir ini, akan dibentuk simulasi pembuatan pola citra dengan parameter– parameter yang diperoleh dari High Resolution Electron Microscope (HREM). Simulasi ini menggunakan tools Matlab yaitu Lattice Generator. Output dari Lattice Generator ini akan menghasilkan gambar/citra. Gambar tersebut akan dianalisa dengan Lattice Parameter Analyzer untuk dapat mengetahui jarak antara nanopartikel. Jarak nanopartikel yang diukur akan dihitung dengan metoda Radial Distribution Function (RDF) yaitu menentukan jarak antara nanopartikel dari titik tengah partikel. Hasil dari Lattice Parameter Analyzer akan berupa tabel dan grafik yang menyatakan jarak pengukuran antara nanopartikel. Dari pengukuran dengan 5 buah titik pada gambar Silicon HREM diperoleh nilai kesalahan error rata-rata sebesar 0.123 nm sedangkan pada gambar TiO2 diperoleh nilai kesalahan
error rata sebesar 0.003 nm.
ii
DEVELOPMENT OF PATTERN IMAGE SIMULATION FOR KNOWING DISTANCE BETWEEN NANOPARTIKEL USING LATTICE
GENERATOR AND LATTICE PARAMETER ANALYZER
Laurensius Morris 0522018
Electrical Engineering Department, Maranatha Christian University Bandung Jln. Prof. Drg. Suria Sumantri, MPH no. 65, Bandung, Indonesia
Email : morris_heavenz@yahoo.com
ABSTRACT
In the the development of nano technology in the modern era this has grown rapidly. Nanotechnology will make a material object becomes stronger and lighter. For example, as in making a strong steel material for vehicle body. To determined a good material object then it need research on nanoparticles. To be able to analyze and examine the nanoparticle-sized objects, it needed a electron microscope that will produce nanoparticle materials. Image scanning of the electron microscope has a pattern and distances vary depending on the material to be analyzed.
In this final project, will be established of an image development simulations with parameters - the parameters obtained from the High Resolution Electron Microscope (HREM). This simulation using the Matlab tools Lattice Generator. Output of this lattice generator will produce a picture / image. Images will be analyzed with Lattice Parameter Analyzer to be able to know the distance between the nanoparticles. Nanoparticles measured distance will be calculated by methods Radial Distribution Function (RDF) which determines the distance between the nanoparticles from the midpoint of the particle. Results of the Lattice Parameter Analyzer will be tables and graphs which states the distance measurement between the nanoparticles. From measurements by 5 points on the Silicon HREM images obtained error value of the average error of 0.123 nm, while the images obtained TiO2 average value of error for error 0.003 nm.
iii DAFTAR ISI
LEMBAR PENGESAHAN
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI PERNYATAAN ORISINALITAS LAPORAN
KATA PENGANTAR
ABSTRAK ... i
ABSTRACT ... ii
DAFTAR ISI... iii
DAFTAR GAMBAR ... vi
DAFTAR TABEL ... ix
DAFTAR RUMUS ... x
BAB 1 PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 1
1.3 Tujuan ... 2
1.4 Pembatasan Masalah ... 2
1.5 Sistematika Penulisan ... 2
BAB 2 LANDASAN TEORI II.1 Pengantar Nanopartikel ... 4
II.2 Lattice ... 4
iv
II.3.1 Latar Belakang Teori ... 7
II.3.2 Definisi Lattice Generator Matlab ... 9
II.3.3 Input dan Output Lattice Generator ... 11
II.4 Lattice Parameter Analyzer ... 12
II.4.1 Latar Belakang Teori ... 12
II.4.2 Definisi Lattice Parameter Analyzer Matlab ... 14
II.4.3 Distance Measurement ( Perhitungan Jarak ) ... 14
II.4.4 Finding Maximum Peak dengan FindMaxGauss.M ... 15
II.4.5 Radial Distribution Function ... 16
II.4.6 Input LPA ... 17
II.4.7 Output LPA ... 17
II.4.8 Blok Diagram LPA ... 18
II.5 Titanium Dioksida (TiO2) Dan Silikon (Si) ... 18
II.5.1 Titanium Dioksida (TiO2) ... 19
II.5.2 Silikon ... 19
BAB 3 PERANCANGAN III.1 Blok Diagram Perancangan Program ... 21
III.2 Perancangan Program ... 22
III.2.1 Lattice Generator ... 22
III.2.2 Lattice Parameter Analyzer ... 30
BAB 4 DATA PENGAMATAN DAN ANALISA DATA IV.1 Metoda Perhitungan Lattice Parameter Analyzer ... 39
IV.1.1 Square Lattice ... 39
v
IV.1.3 Hexagonal Lattice ... 44
IV.2 Analisa Data ... 45
IV.2.1 Lattice Generator TiO2 ... 45
IV.2.2 Lattice Generator Si ... 48
IV.2.3 Silicon ... 52
IV.2.4 Titanium Dioksida ... 61
BAB 5 KESIMPULAN DAN SARAN V.1 Kesimpulan ... 71
V.2 Saran ... 72
vi
DAFTAR GAMBAR
Gambar 2.1 Pola-pola Lattice 2 Dimensi ... 6
Gambar 2.2 Tampilan Vektor Base ... 7
Gambar 2.3 Tampilan Wiener Filter ... 8
Gambar 2.4 Representasi square lattice ... 9
Gambar 2.5 Representasi rectangular lattice ... 9
Gambar 2.6 Representasi hexagonal lattice... 10
Gambar 2.7 Setelah gambar/citra disimulasikan dengan LG ... 11
Gambar 2.8 Tampilan pengukuran radius atom ... 12
Gambar 2.9 Tampilan koordinat kartesian ... 13
Gambar 2.10 Radial Distribution Function (RDF1) ... 16
Gambar 2.11 Radial Distribution Function (RDF2) ... 16
Gambar 2.12 Flowchart Lattice Parameter Analyzer... 18
Gambar 2.13 Contoh penggunaan bahan baku TiO2 yaitu kaca anti embun . 19 Gambar 2.14 Contoh nanopartikel dari mesoporous silica ... 20
Gambar 3.1 Blok Diagram Cara Kerja ... 21
Gambar 3.2 Blok Diagram Lattice Generator ... 22
Gambar 3.3 Blok Diagram Lattice Parameter Analyzer ... 23
Gambar 3.4 Tampilan LGConf.txt... 24
Gambar 3.5 Tampilan LPAConfig.txt ... 31
vii
Antarpartikel ... 40
Gambar 4.3 Tampilan pola rectangular lattice dari tools Lattice Parameter Analyzer ... 42
Gambar 4.4 Contoh dari grafik pola rectangular lattice untuk mencari jarak Antarpartikel ... ... 43
Gambar 4.5 Tampilan pola hexagonal lattice dari tools Lattice Parameter Analyzer ... ... 44
Gambar 4.6 Tampilan LatticeLattice(a=20 b=20 angle=75).tif ... 45
Gambar 4.7 Tampilan LatticeLattice(a=20 b=20 angle=75).tif yang telah tersegmentasi ... 46
Gambar 4.8 TampilanGrafik dari Lattice(a=20 b=20 angle=75).tif ... 47
Gambar 4.9 Tampilan peak position dari Lattice(a=20 b=20 angle=75).tif... 48
Gambar 4.10 Tampilan LatticeHex(a=20 angle=15).tif... 49
Gambar 4.11 Tampilan LatticeHex(a=20 angle=15).tif yang telah tersegmentasi... 49
Gambar 4.12 TampilanGrafik dari LatticeHex(a=20 angle=15).tif... 50
Gambar 4.13 Tampilan Peak Position dari LatticeHex(a=20 angle=15).tif .. 51
Gambar 4.14 Tampilan dari Si-HREM.jpg ... 52
Gambar 4.15 Tampilan Si-HREM yang telah tersegmentasi ... 53
Gambar 4.16 TampilanGrafik dari Si-HREM.jpg ... 53
Gambar 4.17 Tampilan Si-HREM Kiri Atas yang tersegementasi ... 54
Gambar 4.18 Tampilan Grafik dari Gambar Si-HREM Kiri Atas ... 55
Gambar 4.19 Tampilan Si-HREM Kanan Atas yang tersegementasi ... 55
Gambar 4.20 Tampilan Grafik dari Gambar Si-HREM Kanan Atas ... 56
Gambar 4.21 Tampilan Si-HREM Kanan Bawah yang tersegementasi ... 57
viii
Gambar 4.23 Tampilan Si-HREM Kiri Bawah yang tersegementasi ... 58
Gambar 4.24 Tampilan Grafik dari Gambar Si-HREM Kiri Bawah ... 59
Gambar 4.25 Tampilan Peak Position dari Si-HREM.jpg ... 60
Gambar 4.26 Tampilan dari TiO2 ...61
Gambar 4.27 Tampilan dari TiO2 yang telah tersegmentasi ... 62
Gambar 4.28 Tampilan grafik dari TiO2 ... 62
Gambar 4.29 Tampilan dari TiO2 Kiri Atas ... 63
Gambar 4.30 Tampilan grafik dari TiO2Kiri Atas ... 64
Gambar 4.31 Tampilan dari TiO2 Kanan Atas ... 64
Gambar 4.32 Tampilan grafik dari TiO2Kanan Atas ... 65
Gambar 4.33 Tampilan dari TiO2 Kanan Bawah ... 66
Gambar 4.34 Tampilan grafik dari TiO2Kanan Bawah ... 66
Gambar 4.35 Tampilan dari TiO2 Kiri Bawah ... 67
Gambar 4.36 Tampilan grafik dari TiO2Kiri Bawah ... 68
ix
DAFTAR TABEL
Tabel 2.1 Step untuk Distance Measurement ... 15 Tabel 2.2 Step untuk FindMaxGauss ... 15 Tabel 4.1 Perbandingan nilai matematis dengan nilai pengukuran LPA pada square lattice ... 41 Tabel 4.2. Perbandingan nilai matematis dengan nilai pengukuran LPA pada rectangular lattice ... 42 Tabel 4.3 Perbandingan nilai matematis dengan nilai pengukuran LPA pada hexagonal lattice ... 44 Tabel. 4.4 Perbandingan nilai matematis dengan nilai pengukuran LPA dari gambar Lattice(a=20 b=20 angle=75).tif ... 47 Tabel. 4.5 Perbandingan nilai matematis dengan nilai pengukuran LPA dari gambar LatticeHex(a=20 angle=15).tif ... 51 Tabel. 4.6 Perhitungan jarak nanopartikel silikon yang dianalisa dengan
Lattice Parameter Analyzer... 60 Tabel 4.7 Perhitungan jarak nanopartikel TiO2 yang dianalisa dengan Lattice
x
DAFTAR RUMUS
Rumus 2.1 Menentukan Dividing Space ... 5
Rumus 2.2 Square Lattice1 ... 9
Rumus 2.3 Square Lattice2 ... 9
Rumus 2.4 Square Lattice3 ... 9
Rumus 2.5 Rectangular Lattice1 ... 10
Rumus 2.6 Rectangular Lattice2 ... 10
Rumus 2.7 Rectangular Lattice3 ... 10
Rumus 2.8 Hexagonal Lattice1 ... 10
Rumus 2.9 Hexagonal Lattice2 ... 10
Rumus 2.10 Euclidean Distance1... 13
Rumus 2.11 Euclidean Distance2... 13
Rumus 4.1 Jarak Square Lattice1 ... 39
Rumus 4.2 Jarak Square Lattice2 ... 39
Rumus 4.3 Jarak Square Lattice3 ... 39
Rumus 4.4 Jarak Rectangular Lattice1 ... 42
Rumus 4.5 Jarak Rectangular Lattice2 ... 42
Rumus 4.6 Jarak Rectangular Lattice3 ... 42
Rumus 4.7 Jarak Hexagonal Lattice1 ... 44
Configuration File
# Program : Lattice Generator # Version : 4.0814
# Objective : Creates images simulating HREM images of
atomic lattice
# FlagPrint=1 shows the results on the screen FlagPrint=1
# ImgSize: size in pixel of the created image ImgSize=512
# a: first lattice parameter in number of pixels a=20
# b: second lattice parameter in number of pixels b=20
# Hexagonal: an hexagonal lattice can be created with # the a as parameter.
# if you wish square or rectangular write 0 # if you wish hexagonal write 1
Hexagonal=0
# Angle: the final image can be rotated if wished Angle=10
Main_LatticeGenerator
clear all; close all; clc; warning off;
% ---% Cabecalho
fprintf('\nLattice Generator - LaGen Version 4.0814');
%Read the configuration file
[FlagPrint ImgSize a b Hexagonal Angle] = LGReadConfigFile('LGConf.txt');
FlagPrint=str2num(FlagPrint); if (FlagPrint==1)
fprintf('\n---'); fprintf('\nInput parameters...');
fprintf('\n\tImage size : %s', ImgSize); fprintf('\n\tFlagPrint : %d', FlagPrint);
fprintf('\n\tLattice Parameter a : a = %s pixels', a); fprintf('\n\tLattice Parameter b : b = %s pixels', b); fprintf('\n\tHexagonal : %s', Hexagonal);
fprintf('\nHit any key to continue...');
fprintf('\n---'); pause;
else fprintf('\nSilent mode'); end %If Hexagonal call special function
if Hexagonal==1
[ImgNoir Rayon SizeX SizeY ImgName] = LGHex(FlagPrint, ImgSize, a,
Angle); end
if Hexagonal==0
[ImgNoir Rayon SizeX SizeY ImgName] = LGSquare(FlagPrint, ImgSize,
a, b, Angle); end
% ---%Dilating atoms
if (FlagPrint==1) fprintf('\nDilating atoms ...'); end se = strel('disk',Rayon);
ImgCircle = imdilate(ImgNoir,se);
% ---%Enlarging image
if (FlagPrint==1) fprintf('\nEnlarging image ...'); end ImgGrande=zeros(SizeY+DeltaEnlarge,SizeX+DeltaEnlarge);
ImgGrande(DeltaEnlarge/2:(DeltaEnlarge/2+SizeY-1),DeltaEnlarge/2:(DeltaEnlarge/2+SizeX-1))=ImgCircle;
% ---%Rotating image
if (FlagPrint==1) fprintf('\nRotating image ...'); end ImgRotTemp = imrotate(ImgGrande,-Angle,'bilinear');
% ---%Bluring the image
if (FlagPrint==1) fprintf('\nComputing gaussian filter...'); end
H = fspecial('gaussian', 12, 4);
ImgCircleBlur = imfilter(ImgRotTemp, H , 'replicate');
if (FlagPrint==1) fprintf('\nCroping image ...'); end
if (FlagPrint==1) fprintf('\nShowing images ...');
image(ImgFinal); hold on; colormap(gray); axis off; hold off;
end
%---%Saving the image
ImgSave = uint8(ImgFinal); max = max(max(ImgSave)); max = double(max)/256; min = min(min(ImgSave)); min = double(min)/256;
ImgSave = imadjust(ImgSave, [min max] ,[0 1] ); imwrite(ImgSave,ImgName,'tif');
% ---fprintf('\nEnd!');
LGReadConfigFile
function [FlagPrint, ImgSize, a, b, Hexagonal, Angle] = LGReadConfigFile(ConfigFileName)
fid=fopen(ConfigFileName); while 1
tline = fgetl(fid);
if (~ischar(tline)), break, end idx = findstr(tline,'=');
else
function [ImgNoir, Rayon, SizeX, SizeY, ImgName] = LGSquare(FlagPrint,
ImgSize, a, b, Angle)
% ---% Fixed Global Variables
if (FlagPrint==1) fprintf('\nGlobal variables...'); end Rayon=round( (a + b)/2/6);
ImgName = sprintf('Lattice(a=%d b=%d angle=%d).tif', a, b, Angle);
% ---%Putting black points
if (FlagPrint==1) fprintf('\nCreating image...'); end ImgSize=ImgSize*1.5;
function [ImgNoir, Rayon, SizeX, SizeY, ImgName] = LGHex(FlagPrint,
% ---% Fixed Global Variables
if (FlagPrint==1) fprintf('\nGlobal variables...'); end Rayon=round(a/6);
ImgName = sprintf('LatticeHex(a=%d angle=%d).tif', a, Angle);
% ---if (FlagPrint==1) fprintf('\nCreating image...'); end
ImgSize=ImgSize*1.5;
if(idx>SizeX) continue; end ImgNoir(y,idx)=255;
# Program : Lattice Parameter Analyser
# Version : 4.0816
# Objective : Extract information on the atomic lattice
from HREM Image
# ImgName: name of the image to be analysed ImgName=Lattice(a=20 b=20 angle=10).tif
# FlagPrint=1 shows the results on the screen set to 0 if want the program to run in silence FlagPrint=1
# Scale: distance value of 1 pixel in nanometers (spatial resolution)Scale=0.03
# Neighbourhood: distance in nanometer in the neighbourhood for Radial
# Function (the distance analysis) Neighbourhood=1.5
#Additional parameters only to use in case of program optimization:
#---# RDFThreshold: value used in the function FindMax (that finds theposition of the peaks in the histogram of the distances). It is a type of threshold
# used to separate peaks that are close to each other. RDFTh=0.05
# Filter Order: order of the filter that smoothes the Radial Distribution Function(histogram of the distances) RDFFilterOrder=10
Main_LatticeParameterAnalyser
clear all; close all; clc; warning off;
% ---% Cabecalho
fprintf('\nLattice Parameter Analyser - LPA Version 4.0816');
fprintf('\nCentro Brasileiro de Pesquisas Fisicas - CBPF Brazil');
fprintf('\nEcole Nationale Superieure de Physique de Grenoble - ENSPG
France');
fprintf('\nPontificia Universidade Catolica do Rio de Janeiro - PUC
Rio Brazil\n')
%---%Read the configuration file
[FlagPrint ImgName Neighbourhood Scale RDFTh RDFFilterOrder] =
fprintf('\n\tImgName : %s', ImgName); fprintf('\n\tFlagPrint : %d', FlagPrint);
fprintf('\n\tScale : 1 pixel = %s nm', Scale);
fprintf('\n\tNeighbourhood : %s nm', Neighbourhood); fprintf('\n\tRDF Threshold : %s', RDFTh);
fprintf('\nHit any key to continue...');
fprintf('\n---'); pause;
else fprintf('\nSilent mode'); end %Processes the image
[ImgSEB, ImgBW] = ProcessImage(ImgName, FlagPrint);
%---%Computes distance
[Dist, cont, CoordObjAtCenter] = DistMeasurement(ImgSEB, FlagPrint,
Voisinage);
%---%Finds the peaks on the histogram
[sinal2, Intensity, PeakPos, Deviation, xout, DeltaBin] = FindMaxGauss(Dist, Scale, FlagPrint, RDFTh,
RDFFilterOrder);
% ---% Saves data and images
SavingData(FlagPrint, ImgName, ImgSEB, Dist, xout, Scale, sinal2,
Intensity, PeakPos, Deviation, cont, DeltaBin, CoordObjAtCenter);
% ---% End
fprintf('\nEnd !!')
ReadConfigFile
function [FlagPrint, ImgName, Neighbourhood, Scale, RDFTh, RDFFilterOrder] = ReadConfigFile(ConfigFileName)
fid=fopen(ConfigFileName); while 1
tline = fgetl(fid);
if (~ischar(tline)), break, end idx = findstr(tline,'=');
if(strcmp(tline(1:idx-1),'FlagPrint')) FlagPrint=tline(idx+1:end);
if(strcmp(tline(1:idx-1),'ImgName'))
function [ImgSEB, ImgBW] = ProcessImage(ImgName, FlagPrint) % ---% Reading the image.
if (FlagPrint==1) fprintf('\n\nReading the image...'); end ImgOriginal=imread(ImgName);%ImgOriginal is RGB thus 3D if (isrgb(ImgOriginal)==1) ImgOriginal=ImgOriginal(:,:,1); end;% If
image is RGB makes it grey scale.
% ---% Corrects the background.
if (FlagPrint==1) fprintf('\nComputing background...'); end tic;
H = fspecial('gaussian', 100, 30);
ImgBlurGaus = imfilter(ImgOriginal, H , 'replicate'); t1=toc;
if (FlagPrint==1) fprintf(' (it took %4.2f s !)', t1); end if (FlagPrint==1) fprintf('\nRemoving background ...'); end ImgCorrected =
double(ImgOriginal)*.5-double(ImgBlurGaus)*.5;
ImgCorrected = uint8(ImgCorrected);
%---% Adjusts the contrast.
if (FlagPrint==1) fprintf('\nAdjusting the contrast...'); end
ImgAjusted = imadjust(ImgCorrected, stretchlim(ImgCorrected), [0 1]);
% ---% Creating a binary image.
if (FlagPrint==1) fprintf('\nCreating a binary image...'); end
level = graythresh(ImgAjusted);
ImgBW = im2bw(ImgAjusted, level); % Makes ImgAjusted binary using a
threshold value of level
%---%Removing small irrelevant objects
ImgSeparated=bwmorph(ImgBW, 'open', 3);
%---%Removing image edge particles.
if (FlagPrint==1) fprintf('\nRemoving image edge particles...'); end
% This routine draws a circle with center defined as % a vector CENTER, radius as a scaler RADIS. NOP is % the number of points on the circle. As to STYLE, % use it the same way as you use the rountine PLOT. % Since the handle of the object is returned, you % use routine SET to get the best result.
%---if (nargin <3),
error('Please see help for INPUT DATA.'); elseif (nargin==3)
style='r-'; end;
THETA=linspace(0,2*pi,NOP); RHO=ones(1,NOP)*radius;
[X,Y] = pol2cart(THETA,RHO); X=X+center(1);
axis square;
DistMeasurement
function [Dist, cont, CoordObjAtCenter] = DistMeasurement(ImgSEB,FlagPrint, Voisinage)
%---% Labeling objects.
if (FlagPrint==1) fprintf('\nLabeling objects...'); end [ImgLabeled,numObjects] = bwlabel(ImgSEB,4);% Label components.
if (FlagPrint==1) fprintf('(%d)!',numObjects); end
% ---% Tracking features.
if (FlagPrint==1) fprintf('\nTracking features...'); end Objects=imfeature(ImgLabeled, 'Centroid'); %Computes only mass center.
[SizeY SizeX] = size(ImgLabeled);
%---%Computing distances between centroid of all objects.
numCalc=numObjects;
if (FlagPrint==1) fprintf('\nComputing distances between objects...');
DistCenterTmp=sqrt( ( Objects(i).Centroid(1) - SizeX/2 )^2 + (
Objects(i).Centroid(2) - SizeY/2 )^2 ); if (DistCenterTmp<=DistCenter)
DistCenter=DistCenterTmp;
CoordObjAtCenter = [Objects(i).Centroid(1), Objects(i).Centroid(2)];
end
for j=i+1:numCalc
DistTmp=sqrt( ( Objects(i).Centroid(1)
Objects(j).Centroid(1) )^2 + ( Objects(i).Centroid(2) -Objects(j).Centroid(2) )^2 );
t2=toc;
if (FlagPrint==1) fprintf(' (it took %4.2f s !)', t2); end
SavingData
function SavingData(FlagPrint, ImgName, ImgSEB, Dist, xout, Scale, sinal2, Intensity, PeakPos, Deviation, cont,
DeltaBin,CoordObjAtCenter)
if (FlagPrint==1) fprintf('\nSaving data and images...'); end
if (FlagPrint==1) Option='on'; else Option='off';
end
rep = sprintf('%s Results',ImgName(1:end-4)); mkdir(rep);
%---%Saving Segmented Image
BWname =
sprintf('.//%s//%s_segmented.jpg',rep,ImgName(1:end-4)); h=figure('Visible',Option,'Color',[1,1,1]);
imshow(ImgSEB);
hold on; colormap(gray); axis square; [trash count] = size(PeakPos);
for ind=1:count fid = fopen(DataOutFileName, 'w');
for i=1:cont-1
fprintf(fid, '\n%f',Dist(i)*Scale); end
%---%Saving the peaks graph
t=(1:1:500);
DeltaX=xout(2)-xout(1);
h=figure('Visible',Option,'Color',[1,1,1]);
bar(t2,sinal2,'g'); set(gca,'Layer','top'); hold on; tt=(0:0.00001:1);
hirest2=(tt*xout(end))*Scale;
[trash count] = size(PeakPos); for ind=1:count
EstSinal2=Intensity(ind)*exp(-((hirest2-PeakPos(ind))./(Deviation(ind)*sqrt(2))).^2); plot(hirest2,EstSinal2,'r-');
TextStr=sprintf('\\leftarrow %4.4f',PeakPos(ind)); text(PeakPos(ind), Intensity(ind), TextStr,
'HorizontalAlignment','left') end
grid on; hold off;
title(['First Neighbours Position of ', ImgName]); xlabel('Distance in nm');
ylabel('Counts (relative scale)');
max=((xout(2)-xout(1))*500+xout(1))*Scale; axis([0 max 0 2000]);
axis 'auto y';
NamePeak=sprintf('.//%s//%s_peak.jpg', rep, ImgName(1:end-4));
saveas(gcf,NamePeak,'jpg'); fclose(fid);
%---%Saving peak information
DataOutPeakFileName = sprintf('.//%s//%s_peakpos.txt', rep, ImgName(1:end-4));
fid = fopen(DataOutPeakFileName, 'w'); for ind=1:count
fprintf(fid, '\nPeak number %d at %4.4f nm +/- %4.4f nm\n', ind,
fprintf('\n\tSegmented image : %s', BWname);
fprintf('\n\tGraph with first neighbours´ distances: %s',NamePeak);
fprintf('\n\tAll distances within the neihgbourhood: %s',DataOutFileName);
fprintf('\n\tFirst neighbours´ distances : %s', DataOutPeakFileName);
Lattice Generator
Pada penggunaan tools Lattice Generator ini dimulai dari mengatur
parameter-parameter yang terdapat pada text file LGConf.txt. Terdapat 6 parameter-parameter dalam Lattice
Generator seperti yang sudah dijabarkan sebelumnya. Dari keenam parameter tersebut
akan diset nilainya sebagai berikut :
- Flagprint = 1
- ImgSize = 512
- a = 20
- b = 20
- Hexagonal = 0
- Angle = 0
Setelah itu buka program Matlab dan cari m-file Main_LatticeGeneratorm. Dari
Dalam command window Matlab akan muncul konfigurasi parameter yang telah
diset di LGConf.txt
Sebuah citra/gambar yang tersegementasi akan terbuat dengan nama Lattice(a=20
Gambar kemudian diolah/diproses dengan menggunakan berbagai teknik
pemprosesan gambar seperti proses blurring(agar terlihat seperti gambar atanomic
aslinya), proses rotasi, proses pembesaran gambar dll. Setelah input diproses kemudian
gambar/citra akan langsung disave/simpan dengan format .tif dan parameter2 input akan
langsung disimpan sesuai dengan nama gambar tersebut. Berikut ini merupakan contoh
dari square Lattice dengan pixel 512 x 512 parameter 20 pixel dan sudut kemiringan 10
Lattice Parameter Analyzer
Cara penggunaan dari Lattice Parameter Analyzer, bermula dari menentukan
parameter-parameter dalam LPAConfig.txt. Terdapat 5 parameter dalam text file tersebut
seperti yang sudah dijelaskan sebelumnya. Kelima parameter tersebut akan diset nilai
parameternya sebagai berikut :
- ImgName = Lattice(a=20 b=20 angle=0).tif
- Flagprint = 1
- Scale = 0.5
- Neighbourhood = 25
- RDFTh = 0.05
- RDFFilterOrder = 10
Untuk memulai tools ini, tentunya harus menentukan gambar/citra yang akan
diteliti. Sample gambar yang akan diambil, berasal dari output Lattice Generator yang
telah disimpan dengan nama file Lattice(a=20 b=20 angle=0).tif. Data gambar dari output
Setelah itu buka program Matlab dan cari m-file Main_LatticeParam Analyzer.m.
Dari m-file tersebut tekan F5 untuk menjalankan tools ini.
Pada command window Matlab akan menampilkan proses pengukuran jarak
Terdapat 2 Figure Matlab yang berupa citra yang tersegmentasi dan sebuah table
histogram.
Dari Figure 1, terdapat citra dengan 4 buah lingkaran ddidalamnya. Pengukuran
jarak antara nanopartikel dimulai atom yang berada dititik tengah dari gambar. Jarak
yang diukur dari atom tersebut sampai ke salah satu titik tengah atom yang dilingkaran
hijau paling dalam adalah jarak pengukuran yang pertama. Kemudian jarak titik tengah
atom yang pertama ke salah satu titik tengah atom yang dilingkaran merah paling dalam
adalah jarak pengukuran yang kedua. Jarak pengukuran ketiga dan keempat sama halnya
seperti jarak pengukuran yang pertama dan kedua yaitu bermula dari titik tengah atom
yang pertama.
Tabel histogram (Figure 2) merupakan hasil dari pengukuran jarak dari
citra/gambar figure 1 yang tersegmentasi. Kurva X dalam tabel histogram ini menyatakan
jarak antara atom pertama dengan salah satu titik tengah atom berada didalam lingkaran,
sedangkan kurva Y menyatakan skala relative yang berarti jumlah maksimal atom yang
← 9.9620 ← 14.1252 ← 19.9803 ← 22.3721 First Neighbours Position of Lattice(a=20 b=20 angle=0).tif
Distance in nm
C
Setelah Figure 1 dan Figure 2 ditampilkan langsung dari Matlab, kemudian tools
LPA dengan otomatis akan menyimpan data hasil dari pengukuran tersebut. Data akan
disimpan dalam satu folder dengan nama dari citra/gambar yang telah diolah. Letak data
hasil pengukuran itu akan berada di dalam folder Lattice Parameter Analyzer. Isi dari
data tersebut terdapat 4 buah yaitu 2 buah gambar dari figure 1 dan figure 2, 1 buah data
dari program Matlab dengan extension .dat dan sebuah text file yang berisi jarak antara
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1. Latar Belakang
Perkembangan teknologi nano di era modern saat ini telah berkembang dengan pesat. Nanoteknologi akan membuat suatu material benda menjadi lebih kuat dan ringan. Contohnya seperti dalam membuat material baja yang kuat untuk body kendaraan bermotor.
Dalam menentukan material yang baik diperlukan penelitian tentang nanopartikel. Untuk dapat menganalisa dan meneliti benda yang berukuran nanopartikel dibutuhkan suatu mikroskop elektron yang akan menghasilkan gambar nanopartikel material tersebut. Gambar hasil scanning dari mikroskop elektron tersebut mempunyai pola dan jarak yang berbeda-beda tergantung dari material yang akan dianalisa.
Mengamati gambar/citra yang sudah dikonversi ke dalam citra digital, dibutuhkan suatu program untuk menganalisa perhitungan data. Dalam perhitungan datanya dapat menggunakan program Matlab yang dengan tools Lattice Generator (LG) dan Lattice Parameter Analyzer (LPA) dalam menganalisa citra tersebut. LG dan LPA merupakan suatu program untuk matlab yang diciptakan untuk menganalisa citra digital pada benda yang berukuran nanopartikel.
2. Perumusan Masalah
BAB I PENDAHULUAN
Universitas Kristen Maranatha
2
3. Tujuan
Tujuan yang ingin dicapai dari tugas akhir ini adalah sebagai berikut : 1. Menganalisa suatu objek citra yang berukuran sangat kecil sekali atau
nanopartikel.
2. Menghitung jarak antar partikel dengan menggunakan lattice generator yang dapat berupa square lattice atau hexagonal lattice.
4. Pembatasan Masalah
Dalam tugas akhir ini, pembatasan masalah dibatasi sampai hal-hal berikut yaitu :
1. Simulasi ini menggunakan program Matlab.
2. Objek yang dianalisa dari citra ini terdapat 2 buah yaitu zat kristal TiO2(Titanium Dioksida) dan Si(Silicon)
3. Pengenalan karakteristik pola dari atom/nanopartikel yang diteliti menggunakan tabel histogram.
4. Citra yang akan dianalisa dengan LPA mempunyai tingkat ketelitian 0,1-100 nm.
5. Sistematika Penulisan
Laporan terdiri dari beberapa bab dengan garis besar sebagai berikut :
• BAB I PENDAHULUAN
Pada bab ini berisi tentang latar belakang, perumusan masalah, tujuan, pembatasan masalah, blok diagram, dan sistematika penulisan laporan tugas akhir.
• BAB II LANDASAN TEORI
BAB I PENDAHULUAN
Universitas Kristen Maranatha
3
• BAB III PERANCANGAN DAN REALISASI
Pada bab ini dijelaskan mengenai proses perancangan tools Lattice Generator dan Lattice Parameter Analyzer dan blok diagramnya.
• BAB IV DATA PENGAMATAN DAN ANALISA DATA
Pada bab ini dijelaskan tentang cara kerja penggunaan tools Lattice Generator dan Lattice Parameter Analyzer, data pengamatan, dan analisa data.
• BAB V KESIMPULAN DAN SARAN
71
BAB V
KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.
V.1
Kesimpulan
Dalam mensimulasikan dan membuat tools Lattice Generator dan Lattice Parameter Analyzer yang dapat menganalisa jarak antara nanopartikel, dapat disimpulkan bebarapa hal seperti berikut :
1. Perhitungan dari tools Lattice Parameter Analyzer dapat diperoleh data dengan hasil pengukuran :
• Pada gambar Lattice Generator TiO2 diperoleh jarak antar
nanopartikel yang pertama sebesar 0.439 nm. Hasil ini mempunyai range kesalahan error sebesar 0,6% - 1% terhadap perhitungan matematis.
• Pada gambar Lattice Generator Si diperoleh jarak antar nanopartikel yang pertama sebesar 0.330 nm. Hasil ini mempunyai range kesalahan error sebesar 0.5%.- 1,5% terhadap perhitungan matematis.
• Pada gambar HREM Silicon dari 5 buah titik pengukuran mempunyai nilai kesalahan error rata-rata sebesar 0.123 nm terhadap jarak pengukuran antara nanopartikel yang pertama sampai terakhir.
• Pada gambar HREM TiO2 dari 5 buah titik pengukuran
BAB V KESIMPULAN DAN SARAN
Universitas Kristen Maranatha
72
2. Banyaknya jarak antara nanopartikel yang diukur bergantung pada parameter neighbourhood (radius). Jadi semakin besar parameter radius yang ditentukan maka akan semakin banyak jarak pengukuran antara nanopartikel yang diperoleh.
3. Pada pengukuran jarak dari gambar yang diperoleh Lattice Generator bentuk grafik menyerupai impuls sedangkan gambar yang diperoleh langsung dari HREM bentuk grafiknya menyerupai sinusoidal. Hal ini dikarenakan jarak pengukuran dengan metoda RDF tepat berada titik tengah partikel dan berdasarkan skala relative dari sumbu Y.
V.2
Saran
1. Untuk mengukur jarak antara nanopartikel dapat menggunakan metoda-metoda perhitungan yang lain seperti chi-square atau particles size distribution selain metoda radial distribution function.
73
DAFTAR PUSTAKA
D.B. Williams and C. Barry Carter, “Transmission Electron Microscopy”, Plenum
Press (1996).
R.C. Gonzalez, R.E Woods and S.L. Eddins, “Digital Image Processing Using
Matlab”, Pearson Prentice Hall (2004).
C. Jonville, “Characterisation of TiO2 Nanoparticles Involving TEM and Image
ProcessingAnalysis”, Rapport de Projet de Fin d’Etudes, ENSPG
A. Turkovi, E. Tonejc, S. Popovi, D. Cek, M. Ivanda, S. Musi and M. Goti,
“Transmission Electron Microscopy, X Ray diffraction and Raman scattering
studies of nanop hase TiO2”
Fizika A 6 (1997) 2, 77–88.