Makalah PCD 1
Makalah PCD 1
Oleh :
NUR INAYAH
150312607843
JURUSAN MATEMATIKA
Maret 2018
BAB 1
PENDAHULUAN
A. Latar Belakang
Menghitung luas sebuah bangun datar adalah hal yang mudah apabila sudah
diketahui rumus yang digunakan untuk menghitung luas bangun datar tersebut.
Misalnya untuk menghitung luas sebuah persegi panjang adalah dengan
mengalikan ukuran panjang dan lebar persegi panjang tersebut. Untuk
mendapatkan luas persegi adalah dengan mengkuadratkan panjang dari sisi-sisi
persegi, sedangkan untuk menghitung luas lingkaran, rumusnya adalah
mengkalikan nilai phi dengan kuadrat ukuran jari-jari lingkaran. Dan masih
banyak lagi rumus-rumus yang sudah diketahui untuk menghitung luas bangun-
bangun datar yang lainnya.
Akan tetapi apabila sebuah bangun datar bentuknya tidak beraturan, maka
akan sulit untuk mencari rumus menghitungnya. Apabila bentuk bangun datar
tidak terlalu rumit, memang masih bisa dihitung dengan menggunakan rumus
integral. Namun apabila bentuknya sudah sangat kompleks, maka akan sulit untuk
menghitung luasnya menggunakan rumus integral. Terlebih lagi untuk
menghitung bentuk bangun datar seperti pulau-pulau di Indonesia pasti akan
memakan waktu yang sangatlah lama untuk menemukan fungsi integralnya. Hal
ini sangatlah tidak efisien.
Dengan memanfaatkan teknik-teknik pengolahan citra digital bisa dilakukan
perhitungan luas suatu daerah pada sebuah citra digital, dengan cara menghitung
banyak pixel dari daerah yang ingin dihitung luasnya yang kemudian akan
dikonversikan dalam satuan luas pada umumnya.
B. Tujuan
Membangun aplikasi yang akan digunakan untuk menghitung luas suatu
daerah pada suatu citra digital
BAB II
DASAR TEORI
Salah satu operasi titik yang diguanakan pada aplikasi penghitungan luas
daerah pada suatu citra digital adalah operasi pengambangan(thresholding).
C. Pengambangan
Operasi pengambangan (thresholding) digunakan untuk mengubah citra dengan
format skala keabuan, yang mempunyai kemungkinan nilai lebih dari 2, ke citra
biner, yang hanya memiliki 2 buah nilai (0 atau 1) (Achmad & Firdasy, 2005).
Dalam hal ini titik dengan nilai rentang nilai keabuan tertentu diubah menjadi
berwarna hitam dan sisanya menjadi putih atau sebaliknya.
Atau
0, 𝑗𝑖𝑘𝑎 𝐾𝑖 ≥ 𝑎𝑚𝑏𝑎𝑛𝑔
𝐾0 = {
1, 𝑗𝑖𝑘𝑎 𝐾𝑖 < 𝑎𝑚𝑏𝑎𝑛𝑔
A. Desain tampilan
unit UnitUtama;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ExtDlgs, ComCtrls, StdCtrls, ExtCtrls;
type
TFormUtama = class(TForm)
PanelAtas: TPanel;
ButtonAmbilCitra: TButton;
StatusBar: TStatusBar;
OpenpictureDialog: TOpenPictureDialog;
ButtonKeabuan: TButton;
ScrollBarAmbang: TScrollBar;
EditAmbang: TEdit;
Label1: TLabel;
btLuas: TButton;
Label2: TLabel;
EditPx: TEdit;
Label3: TLabel;
EditL: TEdit;
Label4: TLabel;
procedure ButtonAmbilCitraClick(Sender: TObject);
procedure Olah;
Procedure Ambangkan;
procedure ButtonKeabuanClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ScrollBarAmbangChange(Sender: TObject);
procedure btLuasClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormUtama: TFormUtama;
implementation
uses UnitCitra;
type
LogPal = record
lpal: TLogPalette;
entry: array[0..255]of TPaletteEntry;
end;
var
FormHasil: TFormCitra;
FormAmbang: TFormCitra;
PaletKeabuan: LogPal;
{$R *.dfm}
FormCitra.Image.Picture.LoadFromFile(OpenPictureDialog.FileName);
FormCitra.ClientHeight := FormCitra.Image.Picture.Height;
FormCitra.ClientWidth := FormCitra.Image.Picture.Width;
FormCitra.ClientHeight := FormCitra.Image.Picture.Height;
case (FormCitra.Image.Picture.Bitmap.PixelFormat) of
pf1bit : fc :='biner';
pf8bit : fc :='keabuan';
pf24bit : fc :='true color';
end;
StatusBar.SimpleText := OpenPictureDialog.FileName + '('
+IntToStr(FormCitra.Image.Picture.Width)
+ 'x' + IntToStr(FormCitra.Image.Picture.Height)+', '+fc+')';
formCitra.SetFocus;
if (FormHasil = nil) then
application.CreateForm(TFormCitra, FormHasil);
FormHasil.Caption := 'Citra Hasil';
FormHasil.Image.Picture := FormCitra.Image.Picture;
FormHasil.ClientHeight := FormHasil.Image.Picture.Height;
FormHasil.ClientWidth := FormHasil.Image.Picture.Width;
FormHasil.Top := FormCitra.Top;
FormHasil.Left := FormCitra.Left + FormCitra.Width;
end;
end;
procedure TFormUtama.Olah;
var
i,j: integer;
PC,PH: PByteArray;
begin
FormHasil.Image.Picture.Bitmap.PixelFormat := pf8bit;
FormHasil.Image.Picture.Bitmap.Palette :=
createPalette(PaletKeabuan.lpal);
for i:= 0 to FormCitra.Image.Picture.Height - 1 do
begin
PC := FormCitra.Image.Picture.Bitmap.ScanLine[i];
PH := FormHasil.Image.Picture.Bitmap.ScanLine[i];
for j:= 0 to FormCitra.Image.Picture.Width - 1 do
PH[j] := round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3);
end;
end;
procedure TFormUtama.Ambangkan;
var
i,j,Ambang: integer;
PC,PH: PByteArray;
begin
Ambang := ScrollBarAmbang.Position;
if(FormHasil.Image.Picture.Bitmap.PixelFormat = pf8bit)then
for i:= 0 to FormHasil.Image.Picture.Height - 1 do
begin
PC := FormHasil.Image.Picture.Bitmap.ScanLine[i];
PH := FormAmbang.Image.Picture.Bitmap.ScanLine[i];
for j:= 0 to FormHasil.Image.Picture.Width - 1 do
begin
if (PC[j] < Ambang) then
PH[j] := 0
else
PH[j] := 255;
end;
end;
end;
end.
DAFTAR RUJUKAN
Group.