Anda di halaman 1dari 62

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

GAIBlog

mengakses pixel

03apr07 Pada pertemuan About these ads (h pertama p://en.wordpress.com/about-these-ads/) dalam kuliah graka komputer ada satu hal penting yang ditanyakan (dijadikan tugas ) yaitu bagaimana caranya menampilkan titik dengan warna tertentu di layar monitor (dengan mengakses framebuer) dan mendapatkan deskripsi tentang warna dari titik dengan koordinat tertentu di layar. Dalam dunia DOS dulu, hal ini mudah saja (dalam berbagai asumsi) untuk dilakukan yaitu dengan mengakses memori pada alamat $A0000 dengan data yang dapat diakses tergantung dari mode grak yang sedang aktif. Lalu bagaimana melakukan hal ini di delphi (misal menampilkan titik berwarna tertentu pada form)? hal ini bisa dilakukan melalui Property Pixels milik objek bertipe TCanvas yang umumnya merupakan milik dari kelas turunan TWinControl seperti TForm. contoh penggunaan Pixels adalah sebagai berikut : 1 2 3 4 5 6 7 8 9 10 11 12 13 { menampilkan titik berwarna merah di koordinat (10, 10) } Form1.Canvas.Pixels[10,10] := clRed; { atau } Form1.Canvas.Pixels[10, 10] := RGB(255, 0, 0); { mendapatkan pixel dari koordinat tertentu (10, 10) } var p : TColor; r, g, b : byte; { ... } p := Form1.Canvas.Pixels[10, 10] { mendapatkan komponen warna merah, hijau, dan biru } r := GetRValue(p); g := GetGValue(p); b := GetBValue(p);

Cara di atas merupakan cara termudah untuk mengakses pixel pada suatu koordinat di layar (maksudnya form, hehehe) namun bukan merupakan cara tercepat. Masih ada cara lain yang lebih cepat. saya pertama kali merasakan lambatnya Pixels ketika mengikuti kuliah Graka Komputer (3 tahun yang lalu) dan membuat tugas menggunakan Delphi (tadinya pakai turbo pascal 7) tapi akhirnya mengikuti anggota kelompok lain yang lebih akrab dengan Delphi daripada turbo pascal. Cara lainnya untuk mengakses pixel adalah dengan menggunakan properti scanline dari kelas TBitmap. Kenapa menggunakan TBitmap? awalnya sih karena untuk menampilkan gambar di Delphi saya menggunakan komponen TImage dan di dalam TImage ada properti Picture yang kemudian properti Bitmap yang merupakan kelas bertipe TBitmap (garing hehehe..) yang akhirnya sampai sekarang saya gunakan untuk keperluan pengolahan citra ataupun menggambar (graka). Untuk menggunakan scanline dengan nyaman ada beberapa hal yang perlu untuk dideklarasi terlebih dahulu. 1 2 3 4 5 6 7 8 9 10 type { asumsi PixelFormat yang digunakan adalah 24 bit (pf24bit) } TWarnaRGB = packed record b, g, r : Byte; end; { packed; jadi 1 record ukurannya persis 3 byte, klo nggak pake packed nanti ukurannya di-align ke 4 byte jadinya 4x3 = 12 byte; } TArrRGB = array[0..65535] of TWarnaRGB; PArrRGB = ^TArrRGB; { tipe properti scanline adalah Pointer }

1 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Tipe data bentukan di atas akan digunakan dalam potongan kode berikut: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 procedure PutPixel(b:TBitmap; x, y:integer; rr, gg, bb : byte); var p : PArrRGB; begin p := b.Scanline[y];{ 10 adalah baris/ordinat(y) pada Bitmap } with p[x] do begin r := rr; g := gg; b := bb; end; end; procedure GetPixel(b:TBitmap; x, y:integer; var r, g, b : Byte); var p : PArrRGB; begin p := b.Scanline[y]; r := p[x].r; g := p[x].g; b := p[x].b; end;

Kode di atas mengasumsikan properti PixelFormat milik TBitmap bernilai pf24bit yang artinya Bitmap menyimpan informasi gambar sebanyak 3 byte per titik (r, g, dan b). Jika bitmap yang dimiliki tidak dalam format 24 bit maka ubah saja ke dalam format 24 bit dengan kode berikut (sedikit maksa). 1 2 3 var b : TBitmap; { .. } b.PixelFormat := pf24bit; 138 Komentar

Filed under: delphi, programming |

138 Responses to mengakses pixel


Pengumpan untuk Entri ini Trackback Address 1 mia on 5 April 2007 berkata: Halow Peb! pa kabar? sip sip! sering2 bagi cerita ke-gaibannya ;D ku link blognya yaa.. 0 0 i Rate This Balas 2 tris on 14 April 2007 berkata: massay amo tanya. klo pengen mendapatkan matriknya rgb dari gambar bagaimana caranya?truz ditampilkan di stringgrid.coz aq masih bingung. trimakasih ya mas.

2 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

1 0 i Rate This Balas 3 pebbie on 16 April 2007 berkata: @tris: gambarnya di iterate aja var i,j:integer; p : PArrRGB; b:TBitmap; { gambarnya } sg : TStringgrid; { gridnya } { .. } for j := 0 to b.Height-1 do begin { iterate row } p := b.Scanline[j]; for i := 0 to b.Width-1 do begin { iterate column } sg.Cells[i, j] := IntToStr(p[i].r)+','+IntToStr(p[i].g)+','+IntToStr(p[i].b); end; end; 0 0 i Rate This Balas 4 qoy on 16 April 2007 berkata: klo untuk mengakses gambar dari web camera gimana ya caranya? 0 0 i Rate This Balas 5 pebbie on 17 April 2007 berkata: untuk mengakses gambar dari Web Cam, saya pakai komponen DSPack dari progdigy.com di situ ada komponen TFrameGrabber ada method untuk GetBitmap (cara halus) cara kasarnya(tanpa pakai FrameGrabber tapi nyuri dari canvas TVideoWindow):

3 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

BitBlt(VideoWindow1.Canvas.Handle, 0, 0, VideoWindow1.Width, VideoWindow1.Height, MyBitmap.Canvas.Handle, 0, 0, pmSrcCopy);//klo ga salah lo ya.. coba cek di help Win32 SDK 1 0 i Rate This Balas 6 triswantoro on 17 April 2007 berkata: mas, aku nyoba pakek looping sampai Height-1 dan Width-1. tp kok nge-run nya lama? gmn cara agar dapet RGB tp gak selama itu? trimakasih banyak atas bantuannya ya mas 0 0 i Rate This Balas 7 pebbie on 17 April 2007 berkata: tris:lamanya mungkin karena dimasukkan ke dbgrid mas, perlu konversi dari bilangan bulat ke string karakter, trus update data di stringgrid. memang harus ke string grid ya mas? hehe.. kalo memang harus, mendingan sementara ditampung dulu ke stringlist of stringlist var i,j:integer; p : PArrRGB; b:TBitmap;//gambarnya s1, s2 : TStrings; sg : TStringgrid;//gridnya s1 := TStringlist.Create; s2 := TStringlist.Create; for j := 0 to b.Height-1 do begin //iterate row p := b.Scanline[j]; s2.Clear; for i := 0 to b.Width-1 do begin //iterate column s2.Add(IntToStr(p[i].r)+','+IntToStr(p[i].g)+','+IntToStr(p[i].b));//simpan di stringlist end; s1.Add(s2.CommaText); end; //sekarang dikopi ke string grid sg.RowCount := s1.Count+sg.FixedRows; for j := 0 to s1.Count-1 do //iterate row sg.Rows[sg.FixedRows+j].CommaText := s1[j];
4 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

semoga berhasil! 0 0 i Rate This Balas 8 no skill on 27 April 2007 berkata: Peb, mo nanya nih! gw pernah baca di buku teknik pengolahan citra digital menggunakan delphi, tentang binarisasi karya Balza Achmad. begini bunyinya: var i,j,Ambang,gray:integer; PC,PH:Pbytearray; begin Ambang:=128; if(form4.Image.Picture.Bitmap.PixelFormat=pf24bit) then for i:=0 to form4.Image.Picture.Height-1 do begin PC:=form4.Image.Picture.Bitmap.ScanLine[i]; PH:=form4.Image.Picture.Bitmap.ScanLine[i]; for j:=0 to form3.Image.Picture.Bitmap.Width-1 do begin gray:=round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3); if (gray 0 0 i Rate This Balas 9 no skill on 27 April 2007 berkata: if (gray 0 0 i Rate This Balas 10 no skill on 27 April 2007 berkata:
5 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Jelasin gw dunk maksudnya?? Gw ga ngerti jalan pikirannya terutama di bagian scanline ama di bagian PC/PH, yang ada tulisan [3*j] ato[3*j+1] ??? gunanya apa ya? Trus maksud n guna pbytearray ama Array of array of byte tu apa ya??? MOhon bantuannya. Tenkyu Bro!!! 0 0 i Rate This Balas 11 pebbie on 30 April 2007 berkata: umm, gw coba dikit2 y rada bingung jg nih.. bedanya pbytearray dengan PArrRGB gw itu : klo pbytearray itu menunjuk record yang ukurannya 1 byte. sedangkan pArrRGB gw itu menunjuk record yang ukurannya 3 byte. sebenarnya sama, hanya saja.. gw nggak harus mengalikan dengan 3 dan menambah 1 dan 2 untuk mengakses nilai green, dan red. soalnya udah dibungkus sama record TWarnaRGB. dengan asumsi urutan penyimpanan elemen pixel di windows adalah bgr bukan rgb maksud pernyataan di atas spt ini: PC[3*j] itu untuk mengakses elemen blue yang ke-j PC[3*j+1] untuk mengakses elemen green yang ke-j PC[3*j+2] untuk mengakses elemen red yang ke-j dikalikan 3 karena tiap pixel membutuhkan tempat penyimpanan sebesar 3 x 1 byte per elemen (b 1 byte, g 1 byte, r 1 byte). jadi ketika mengalikan j (iterator kolom) dengan 3, nilai yang ditunjuk oleh PByteArray adalah nilai blue, nilai green dan red adalah 1-2 byte setelah posisi blue tsb. pointer yang gw gunakan adalah pointer of array of record (bgr) bukan pointer of array of byte. jadi, dari struktur record itu udah ada oset dari pointer untuk merujuk ke elemen yang gw maksud (r, g, b) dan pengaksesan nilai masing-masing elemen sudah dibuat oleh compiler jadi tidak perlu lagi susah-susah melakukan operasi aritmatika terhadap alamat pointer (pointer arithmetic) 0 0 i Rate This Balas 12 $^$ on 6 Mei 2007 berkata: alow kk pebbie aku mao nanyagimana caranya dapetin nilai koordinat dari pixel? misalnya ada gambar kotak yang warnanya hitam smuatrus gimana caranya ngedapetin koordinat dari keempat sudut kotak tersebut???

6 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Makasih banyak yah. 0 0 i Rate This Balas 13 pebbie on 7 Mei 2007 berkata: kalau untuk mencari sudut dari kotak bisa didapat dari kombinasi nilai elemen bounding box-nya. tapi untuk mendapatkan kotaknya bisa digunakan segmentasi dengan CCL (Connected Component Labelling), yaitu memberi label kepada komponen (pixel) yang berhubungan. keterhubungan antar pixel bisa merupakan terhubung ke 4 atau 8 tetangga. untuk melakukan CCL bisa secara iteratif atau memodikasi dari algoritma ll (mis. oodl). cara yang lebih ringan untuk kasus mencari sudut adalah menelusuri pantai/tembok. jadi seolah-olah ada robot yang memproses pixel. robot tersebut mulai dari salah satu tepian region (mis. kotak) lalu bergerak menelusuri tepian tersebut. untuk menentukan region yang diproses kotak atau bukan bisa menggunakan properti width to height ratio (kotak normal) atau axis-aligned bounding box (kotak yang terputar). 0 0 i Rate This Balas 14 $^$ on 7 Mei 2007 berkata: saya ud pake cara tersebutsaya gunakan 3 buah scanline (atas,tengah,bawah).. akan tetapimasalahnyako fungsi scanlinenya error yah??? apa memang nga bisa digunakan secara bareng kk?? saya bingung niy ato kk pebbie ada usul yang lebih baik? potongan programnya kira2 begini: (PA>BarisAtas;PT>BarisTengah;PB>BarisBawah) for i:=0 to image1.picture.height-1 do begin PA:=image1.picture.bitmap.scanline[i]; PB:=image1.picture.bitmap.scanline[i+1]; PC:=image1.picture.bitmap.scanline[i+2]; Tapi kok error yahdelphi said that scanline was out of index ??? Trims

7 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 15 $^$ on 7 Mei 2007 berkata: saya ud pake cara tersebutsaya gunakan 3 buah scanline (atas,tengah,bawah).. akan tetapimasalahnyako fungsi scanlinenya error yah??? apa memang nga bisa digunakan secara bareng kk?? saya bingung niy ato kk pebbie ada usul yang lebih baik? potongan programnya kira2 begini: (PA>BarisAtas;PT>BarisTengah;PB>BarisBawah) for i:=0 to image1.picture.height-1 do begin PA:=image1.picture.bitmap.scanline[i]; PT:=image1.picture.bitmap.scanline[i+1]; PB:=image1.picture.bitmap.scanline[i+2]; Tapi kok error yahdelphi said that scanline was out of index ??? Trims 0 0 i Rate This Balas 16 pebbie on 8 Mei 2007 berkata: hoho.. ya jelas saja akan error.. ketika nilai i mencapai Image1.Picture.Height-1 maka scanline[i+1] dan scanline[i+2] akan menunjuk ke baris scanline yang tidak terdenisi. karena nilai maksimum untuk mengakses scanline hanya sampai Image1.Picture.Height-1. perlu ditambahkan analisa kasus untuk memeriksa apakah pengaksesan scanline valid atau tidak. misal bisa saja nilai maksimum untuk iterasi for hanya sampai Image1.Picture.Height-3 atau ditambahkan IF di dalam iterasi FOR

8 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 17 ayat on 10 Mei 2007 berkata: mas, saya mau tanya, kalo mau iping horisontal & vertikal gambar (putar), sitaknya bagaimana yach tirima kasih nich sebelumnya 0 0 i Rate This Balas 18 pebbie on 10 Mei 2007 berkata: untuk melakukan image ipping hanya diperlukan pertukaran pixel. misal untuk ip horizontal maka pixel pada koordinat [i, j] ditukar dengan pixel pada koordinat [i, image.height-j] untuk i bernilai dari 0 sampai image.width-1 dan j dari 0 sampai image.height div 2. untuk vertical ip yang ditukar adalah pixel yang berada di atas dengan di bawah garis tengah horizontal. //vertical flip var i, j : integer; b : TBitmap; p, p2 : PArrRGB; w : TWarnaRGB; begin for j := 0 to (b.Height div 2)-1 do begin p := b.scanline[j]; p2 := b.scanline[b.Height-1-j]; for i := 0 to b.Width-1 do begin //tukar w := p[i]; p[i] := p2[i]; p2[i] := w; end; end; end; untuk horizontal ip yang ditukar adalah pixel kiri dengan kanan garis tengah vertikal.

9 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

//horizontal flip var i, j : integer; b : TBitmap; p : PArrRGB; w : TWarnaRGB; begin for j := 0 to b.Height-1 do begin p := b.scanline[j]; for i := 0 to (b.Width div 2)-1 do begin //tukar w := p[i]; p[i] := p[b.Width-1-i]; p2[b.Width-1-i] := w; end; end; end; untuk melakukan putaran lebih enak menggunakan dua buah image. pemetaan pixel dapat dilakukan secara maju (forward mapping) atau terbalik (backward mapping). pemetaan maju memetakan posisi tiap pixel di citra sumber ke posisi baru di citra tujuan dengan nilai pixel di posisi baru adalah nilai pixel di citra asal. fungsi yang digunakan adalah fungsi transformasi geometrik rotasi biasa. sedangkan untuk pemetaan mundur tiap posisi pixel di citra tujuan dipetakan menggunakan fungsi invers rotasi sehingga menghasilkan posisi titik yang bersesuaian pada citra asal. nilai pixel yang digunakan tetap dari citra asal. 0 0 i Rate This Balas 19 gal on 11 Mei 2007 berkata: Mas saya lagi coba mbuat program deteksi warna RGB pake TImage Kenapa ya, warna yang terdeteksi Cuma bagian kiri dari image.??? Misalnya image yang diambil bentuknya kotak berwarna merah bagian kiri 25% dan 75% berwarna biru disebelah kanannya. Walaupun image yang dimbil 75% berwarna biru tapi nilai R selalu lebih tinggi, kenapa ya??? Listing programnya gini var x,y: integer; R, G, B, jmlpixel : longint; begin R := 0; G := 0; B := 0; jmlpixel := 0;
10 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

for x := 0 to image1.Height-1 do for y := 0 to image1.Width-1 do begin R := R + GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]); G := G + GetGValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]); B := B + GetBValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]); jmlpixel := jmlpixel + 1; end; R := round(R/jmlpixel); G := round(G/jmlpixel); B := round(B/jmlpixel); Edit1.Text := intToStr(R); Edit2.Text := intToStr(G); Edit3.Text := intToStr(B); End; Da saran ga.. Maksih ya. 0 0 i Rate This Balas 20 pebbie on 11 Mei 2007 berkata: kebalik tuh for x := 0 to image1.Height-1 do for y := 0 to image1.Width-1 do semestinya for y := 0 to image1.Height-1 do for x := 0 to image1.Width-1 do 0 0 i Rate This Balas 21 Gal on 12 Mei 2007 berkata: oh ya sorry saya yang salah ketik. saya dah bikin kaya itu tapi tetep aja. kalo ingin mengetahui besarnya komponen RGB dari image yang di ambil dari WEBCam gimana? saya pake TVideoGrabber. tolong ya..Ga bisa-bisa nih.maklum masih awam
11 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

thanks.. 0 0 i Rate This Balas 22 nuzul on 18 Mei 2007 berkata: Mohon bantuannya mas. Saya mau tanya nehh. Bagaimana caranya ya, menghitung tingkat/kuantitas pixel di dalam satu area gambar hitam putih/biner (koordinat kita tentukan) dengan metode yang cukup cepat, sehingga kita dapat mengetahui dari hasil hitung tersebut daerah tersebut dihitamkan atau diberi isian. Terus terang ini yang saya tanyakan ini sangat erat hubungannya dengan pembuatan aplikasi optical mark recognition (OMR) yang sepertinya tidak disebarkan ke publik atau mungkin hanya sedikit orang yang mengetahuinya. Sebelumnya, terima kasih jika anda dapat membantu. 0 0 i Rate This Balas 23 pebbie on 18 Mei 2007 berkata: itu disebut CCL (Connected Component Labeling) cara yang paling sederhana (menurut saya) pakai algoritma ood-ll (seperti pada Paint). 0 0 i Rate This Balas 24 no skill on 19 Mei 2007 berkata: Peb, mau nanya nih, kali ini tentang konsep dasar: 1. Apa sih bedanya BMP dan JPEG ? dari buku2 sih bilangnya kalo BMP adalah format yang belum dimampatkan. Lalu kenapa image processing lebih sering menggunakan format BMP, apakah JPEG tidak bisa diolah secara langsung seperti halnya BMP? Truz JPEG itu masih ada informasi RGBnya ga sih? 2. Saya agak bingung mengenai format BMP 8 bit. Buku2 bilang kalo 8 bit itu artinya grayscale. Apakah di 8 bit itu masih terdapat informasi RGB? Tapi kenapa saya masih menemukan citra berformat 8bit yang berwarna-warni dengan kualitas gambar seperti 24bit?

12 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Thanks! 0 0 i Rate This Balas 25 pebbie on 21 Mei 2007 berkata: saya coba jawab yah.. 1. BMP dan JPEG hanya berbeda format penyimpanan aja. BMP juga ada yang dimampatkan, biasanya sih pakai Run-Length Encoding walaupun pada umumnya BMP adalah format tidak termampat yang artinya informasi pixel di simpan mentah-mentah. kalau JPEG itu format yang disusun sebagai standar, sesuai kepanjangan JPEG (Joint Photographic Expert Group). dikompresi dengan human coding, tapi sebelumnya ditransformasi ke domain spasial dengan transformasi kosinus diskret (DCT)(agak mirip dengan MP3 untuk suara). FYI, JPEG2000 menggunakan DWT (Discrete Wavelet Transform) untuk mengurangi kelemahan diskretisasi DCT. 2. untuk bitmap dengan format pixel 8 bit. tiap pixelnya adalah index ke tabel lookup(palet warna) yang berisi informasi RGB. jadi jumlah warna yang mungkin untuk bitmap 8 bit adalah 256 warna. kualitasnya kemungkinan besar tidak sama seperti 24 bit karena ada kuantisasi dari 2 milyar warna ke 256 warna. semoga menjawab.. 0 0 i Rate This Balas 26 no skill on 21 Mei 2007 berkata: Tenkyu peb! Mo nanya lagi ni (sory nanya mulu, maklum no skill hehe..) Gmn yah cara ngubah warna citra (kita batasin format .bmp 24 bit aj) dari grayscale (hitam..abu..putih) menjadi spektrum color/pelangi (me..ji..ku..hi..bi..ni..u). Maksudnya gini, misal: yang tadinya warna kehitam2an jadi sekitar warna merah, trus yang warna keabu2an mgkn jd sekitar warna kuning/hijau, yg warna keputihan menjadi sekitar warna ungu . Dengan kata lain, gw pengen ngubah pallete color gambarnya. Thanks sebelumnya!

13 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 27 pebbie on 26 Mei 2007 berkata: hmm.. mungkin bisa dicoba dari model warna HSV/HSI (Hue-Saturation-Value) komponen Hue itu klo tidak salah pola warna pelangi. jadi pertama bikin gradasi mejikuhibinu dari model HSV yang dikonversi ke RGB (H bervariasi 0-255, S=255, V=127, CMIIW). lalu disampling dari gradasi mejikuhibinu tsb diasosiasikan dengan tingkat 0-255 dari greyscale. type warnargb=packed record b, g, r : byte; end; var paletrgb:array [0..255] of warnargb; h,s,v:byte; begin s := 255; v := 127; for h := 0 to 255 do begin //konversi hsv ke rgb paletrgb[h] := hsv_to_rgb(h, s, v);//saya lupa definisinya end; end; //apply paletrgb ke palet bitmap greyscale 0 0 i Rate This Balas 28 mia on 26 Mei 2007 berkata: mau nanya ni mas.. mas udah pernah nyoba pake sqlite? kira-kira cocok ga sqlite digunakan untuk nyimpen data citra? kelebihan & kekurangannya apa ya? oiya, satu lagi, gimana caranya nyari warna dominan dari suatu citra. misalnya ada suatu citra laut, warna dominannya kan biru tuh, tp gimana cara ngitungnya?? mohon petunjuk makasih banget

14 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 29 pebbie on 26 Mei 2007 berkata: hmm.. kalo nyoba untuk aplikasi sendiri sih belum pernah, tapi kalo nyoba aplikasi contoh dari xampp pake php pernah.. sepertinya sama saja dengan mysql kalau untuk penyimpanan cocok atau tidak saya pikir kembali ke tujuannya ya.. tergantung sqlite itu akan digunakan untuk apa dan citra yang disimpan ke basis data akan digunakan untuk apa.. yang pasti kalau ingin menyimpan citra dalam eld di basis data biasanya disimpan sebagai BLOB. kalau untuk ukuran penyimpanan kembali lagi pada format pemampatan citra yang digunakan sebelum disimpan sebagai BLOB. kalau tidak dimampatkan saya pikir percuma saja kecuali kalau memang dibutuhkan pencarian terhadap koleksi basis data citra yang amat banyak (misal untuk aplikasi GIS yang menyimpan data raster/citra yang diindeks secara spasial seperti pada google earth.. ups, nyebut merk hehehe.. ). kalau untuk mencari warna dominan dari suatu citra bisa saja menggunakan rata-rata dari seluruh pixel. mungkin jika diperlukan rata-rata yang diambil dalam model ruang warna tertentu (mis RGB, CMY, HSV, YIQ, YUV, dll). jadi setelah dikonversi ke ruang warna yang diinginkan, dihitung rata-rata dari tiap komponen pixel (misal rata-rata merah, hijau, dan biru untuk model ruang warna RGB).. 0 0 i Rate This Balas 30 mia on 27 Mei 2007 berkata: waduh2 kok aku rada bingung ya?? ;( kalo dalam delphi, syntaxnya untuk pencarian warna dominan gimana mas? makasih 0 0 i Rate This Balas 31 $^$ on 30 Mei 2007 berkata:

15 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Peb mao nanya lagi niygimana si cara menentukan letak suatu pixel perspketif dari suatu gambar??? Maksudnya gini.. Misalnya dalam suatu gambar ada 3 benda.benda 1 letaknya paling depan, benda 2 dibelakang benda 1, dan benda 3 letaknya dibelakang benda 2. Trus gimana mengakses pixel agar ketahuan letak ketiga benda tersebut klo benda 3 letaknya dibalakang benda 2, benda 2 letaknya diblakang benda 1, dan benda 1 letaknya paling depan. Makasih banyak lho. 0 0 i Rate This Balas 32 pebbie on 30 Mei 2007 berkata: @mia:coba lihat posting saya tentang jurus rata-rata untuk penghalusan citra. ada yang bertanya pada bagian komentar untuk menghitung intensitas rata-rata. algoritmanya kira-kira begini: - konversi citra dari model RGB ke HSV - hitung intensitas rata-rata dari komponen H (Hue) - untuk mendapatkan warna RGB dari hasil nilai rata-rata tsb dikonversi lagi ke RGB dengan nilai S dan V yang sudah ditentukan (konstan) atau bisa berdasarkan himpunan warna yang menjadi kandidat warna dominan. dihitung rata-rata jarak antara vektor warna tiap pixel dengan vektor warna kandidat. lalu kandidat dipilih berdasarkan perhitungan jarak minimum. @$^$: umm.. klo tanpa punya informasi priori tentang gambar yang diambil (blind) susah juga menentukan letak pixel secara perspektif.. cara computer vision baru bisa menentukan objek secara general (bukan titik) dari analisis scene 0 0 i Rate This Balas 33 $^$ on 31 Mei 2007 berkata: Waduhjadi analisa secara global yahbukan titik per titik dari pixel??? Mungkin kk pebbie ada usul ato cara sederhananya gitubuat tau yang mana letak benda di belakang ma yg di depan??? Thx

16 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 34 $^$ on 31 Mei 2007 berkata: Oh ya klo akses webcam pake DSP Pack bisa akses pixel secara langsung nga??? Maksudnya gini setelah preview dari webcam muncul kita langsung dapat akses pixel secara langsung tanpa save dulu ke image(bmp, jpeg, dll). misalnya kita mao grayscaling gambar preview webcam secara langsung. gimana yah??? Thx 0 0 i Rate This Balas 35 Bianca on 2 Juni 2007 berkata: Hay Pebbie, ikutan tanya yach.. Aku lagi coba tentang konversi warna, tentang colormap untuk citra hasil infrared termography. Contoh kasusnya untuk penskalaan temperatur, topogra peta, x-ray melalui warna. Aku bingung banget ni buat listing programnya, apalagi ada kalibrasinya juga tuh kayaknya. Bisa bantu aku nggak??? Kalau enggak keberatan pebbie bisa liat contoh kasusnya di h p://www.google.co.id > search gambar:infrared image. Tolong ya Peb 0 0 i Rate This Balas 36 no skill on 9 Juni 2007 berkata: Peb, Mo Nanya: 1. dpi(dot per inch) itu apa sih? 2. kalo hubungan antara panjang citra (mis:dalam centimeter)dengan pixel itu gimana ya? maksudnya begini, misal:suatu citra di print ternyata memiliki ukuran panjang 5 cm, berapakah besarnya dalam pixel, bagaimana relasinya ??? Tenkyu Peb!

17 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 37 lyly on 3 Juli 2007 berkata: Ass mo nanya mas,. saya lg nyusun tugas akhir nich n sgt btuh bantuan dari mas feb. judulx penentuan morfologi sel darah merah berbasis pengolahan citra dan jaringan syafaf tiruan, sofware yg saya pake borland delphi nach yg saya mo tanyakan gimsns menerapkan algoritma jaringan syaraf tiruan dengan delphi, gimana menentukan jumlah pixel dari citra digital dgn delphi, thx bgt b4 , mas feb. 0 0 i Rate This Balas 38 nita on 3 Juli 2007 berkata: saya lg enyelesaikan TA g animasi gerak peluru dgn 2 dimensi dengan menggunakan delphi dan saya kesulitan utk penskalaan hasil grak animasi ( saya diminta utk memperkecil hasil grak jika melewati area gambar dan memperbesar hasil grak jika hasil tampak kecil di area gambar). Saya sudah pernah mencoba tetapi haol untuk sudut malah salah (Sudut 60 derajat sama besar dengan sudut2 lainnya) jadi saya mohon bantuannya..trimakasih 0 0 i Rate This Balas 39 pebbie on 4 Juli 2007 berkata: sebelumnya saya mohon maaf karena belum bisa menjawab pertanyaan teman-teman.. saya akhir-akhir ini sedang sibuk menyelesaikan tugas akhir (sidang) dan ada beberapa proyek yang harus diselesaikan. saya coba jawab sedikit dulu ya. @ lyly : algoritma jaringan syarafnya ingin diaplikasikan seperti apa ya? saya masih kurang mengerti dengan judulnya penentuan morfologi. coba kirimkan ke e-mail saya saja. algoritma jaringan syaraf tiruan yang pernah saya buat dengan delphi baru algoritma propagasi balik dan waktu itu saya gunakan untuk pengenalan wajah untuk tugas besar kuliah pembelajaran mesin.

18 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

@nita : proses yang nita maksud adalah pengendalian area pandang? kalau demikian, sebelum digambar koordinat-koordinat tersebut ditransformasi dulu dengan transformasi area pandang (view transform). - terima kasih masukannya, saya akan coba bahas algoritma (backpropagation+viewing transform) dan implementasinya dalam delphi dalam posting berikutnya. @$^$ : mungkin bisa coba kirim sampel gambar yang ingin dianalisis. siapa tahu ada cara sederhananya. kirimnya ke alamat ini : peb_ra at yahoo dot com - sebenarnya bisa tanpa harus disimpan dulu ke dalam le, tetapi disimpan ke memori dalam bentuk TBitmap sehingga dapat diakses. coba eksplorasi tentang Grabber di salah satu program kecil pada contoh DSPack. @bianca : maaf baru bisa berkomentar. saya sudah lihat contoh gambarnya, tapi saya agak kebingungan juga untuk lebih detilnya. mungkin bisa diceritakan lebih lanjut (via e-mail)? @no skill : pertanyaan nomor dua sebenarnya jawaban pertanyaan nomor 1. dpi itu adalah ukuran penskalaan resolusi citra (biasanya digunakan dalam pencetakan/penampilan pada monitor). resolusi dpi citra pada umumnya 72(untuk penampilan pada monitor). maksud dari 72 dpi adalah 72 pixel pada citra dapat dianggap sebanding dengan ukuran 1 inchi. Wassalam, Peb 0 0 i Rate This Balas 40 $^$ on 4 Juli 2007 berkata: Saya uda coba pake DSP pack tapi ternyata tidak bisa akses 2 camera secara langsung. jadi saya memakai komponen lain. Mungkin nga yah misalnya di program saya sudah muncul preview dari webcam trus itu preview ditampung di suatu tempat tapi tanpa menjadikannya dalam format gambar sehinnga langsung dapat diproses. kk pebbie coba cek web ini yah h p://www.roborealm.com saya ingin membuat gambar menjadi grayscale langsung seperti program roborealm tersebut. Oh ya saya sudah mencoba properti dari canvas tapi ternyata hasilnya nihil.T_T Mohon bantuannya yah. Makasih banyak. -$^$0 0 i Rate This

19 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Balas 41 no skill on 8 Juli 2007 berkata: Peb, sori kalo mengganggu (just 4 hobby): Pengen nanya nih.. Kalo cara buat sejenis multimedia interactive futuristik dengan TAMPILAN DOS pakai software apa ya? Saya ingin buat TAMPILAN dan cara kerjanya se-tipe dengan yang ada di lm2 (box translucent, layar background hitam, tulisan biasanya berwarna hijau menyala, bunyi tit ketika searching), ya kira2 kalo di lm tuh adegannya saat seorang intelligen mencari buronan di komputer, atau seorang hacker menerobos password rahasia. Kalo tau software ato cara bwtnya toong kasi tau ya Peb. Thanks. 0 0 i Rate This Balas 42 indra on 16 Juli 2007 berkata: mo nanya lagi ni mas.. kok citra pengubinan saya yang saya buat dengan perintah somebitmap.Canvas.Draw(x,y,somebitmap); kalo digabungkan (blending) dengan image yang lain kok selalu muncul noise y?? untuk fungsi gabungnya kira-kira seperti ini : procedure Tform1.Gabung(im1,im2 : TImage); var i, j,posisi : integer; PC, PC2, PH : PByteArray; w1,w2 : real; begin w1 :=trackbar1.Position; w1 := w1/10; w2 := 1-w1; im2.Picture.Bitmap.Height := im1.Picture.Bitmap.Height; im2.Picture.Bitmap.Width := im1.Picture.Bitmap.Width; progressbar5.Min := 0; progressbar5.Max := (im1.Picture.Bitmap.Width-1)*(im1.Picture.Bitmap.Height-1); if (im1.Picture.Bitmap.PixelFormat = pf8bit) then begin for i := 0 to im1.Picture.Bitmap.Height-1 do begin PC := im1.Picture.Bitmap.ScanLine[i]; PC2 := im2.Picture.Bitmap.ScanLine[i]; PH := image1.Picture.Bitmap.ScanLine[i]; for j := 0 to im1.Picture.Bitmap.Width-1 do

20 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

PH[j] := Round(PC[j]*w1+PC2[j]*w2); posisi := i*j; progressbar5.Position := posisi; end; end; if (im1.Picture.Bitmap.PixelFormat = pf24bit) then begin for i := 0 to im1.Picture.Bitmap.Height-1 do begin PC := im1.Picture.Bitmap.ScanLine[i]; PC2 := im2.Picture.Bitmap.ScanLine[i]; PH := image1.Picture.Bitmap.ScanLine[i]; for j := 0 to im1.Picture.Bitmap.Width-1 do begin PH[3*j] := Round(PC[3*j]*w1+PC2[3*j]*w2); PH[3*j+1] := Round(PC[3*j+1]*w1+PC2[3*j+1]*w2); PH[3*j+2] := Round(PC[3*j+2]*w1+PC2[3*j+2]*w2); posisi := i*j; progressbar5.Position := posisi; end; end; end; end; ada solusi?? makasih banyak sebelumnya 0 0 i Rate This Balas 43 pebbie on 17 Juli 2007 berkata: ada 2 masalah yang saya lihat : pf8bit : pengaksesan pixel untuk 8 bit tidak menghasilkan nilai RGB melainkan indeks ke palet 256 warna (tabel 256 elemen RGB). untuk melakukan blending pada citra 256 warna berpalet, setelah nilai RGB hasil blending didapat, indeks pada palet yang memiliki nilai RGB terdekat dengan RGB hasil blending yang digunakan sebagai nilai pixel hasil. pf24bit : sebaiknya dilakukan clamping yaitu pembatasan nilai ke batas bawah dan batas atas untuk menghindari overow. jadi kalau hasil rounding bernilai < 0 maka dibulatkan ke 0 sebaliknya jika hasil rounding > 255 maka dibulatkan ke 255.

21 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 44 lyly on 18 Juli 2007 berkata: gmana kbrx mas feb. saya dah kirimx email, tp gak nyambung2x alamatx cocok ya peb@pebbie.net 0 0 i Rate This Balas 45 Andy NR on 12 September 2007 berkata: Mau nanya nih, saya lagi buat image encoding dengan metode lsb. Pertama saya scanline image untuk dapetin RGBnya, kemudian nilai rgb saya ubah menjadi biner. dari biner tadi saya buat rgb baru yang jadi warna hitam per 3 nilai biner. Saya menggunakan string grid. SG untuk menyimpan nilai rgb perpiksel, SG1 untuk menyimpan nilai biner per piksel, SG3 untuk memcah nilai biner menjadi satu-satu. dan SG4 untuk mengambil nilai biner menjadi RGB baru per pixel. Kemudian dari SG4 di scanline menjadi gambar hitam. Tapi yang jadi masalah, waktunya terlalu lama dan sering out of memory. ada ide gimana caranya untuk mempercepat dan meminimalisasi penggunaan memory. Soalnya saya kurang bisa menggunakan TStrings. berikut contoh program yang saya buat. procedure TFEncode.GetRgb; var i,j:integer; marr : PRGBArray; begin LProses.Caption:=Process : Retrieving Image RGB; LProses.Refresh; Eimage.Picture.Bitmap.PixelFormat:= pf24bit; sg.RowCount:=Eimage.Picture.Bitmap.Height; sg.ColCount:=Eimage.Picture.Bitmap.Width; for j := 0 to Eimage.Picture.Bitmap.Height-1 do begin //iterate row marr := Eimage.Picture.Bitmap.Scanline[j]; for i := 0 to Eimage.Picture.Bitmap.Width-1 do begin //iterate column sg.Cells[i,j]:=IntToStr(marr[i].Red)+,+IntToStr(marr[i].Green)+,+IntToStr(marr[i].Blue); end; end; end; procedure TFEncode.GetBiner;
22 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

var i,j : integer; hasil : TStringList; t1,t2,t3,KATA, data:STRING; begin LProses.Caption:=Process : Convert Image RGB to Binary; LProses.Refresh; sg1.ColCount:=sg.ColCount; sg1.RowCount:=sg.RowCount; for i:=0 to sg.RowCount-1 do begin for j:=0 to sg.ColCount-1 do begin kata:=sg.Cells[j,i]; hasil:=split(kata,,); t1:=IntTobin(StrToInt(hasil[0])); t2:=IntTobin(StrToInt(hasil[1])); t3:=IntTobin(StrToInt(hasil[2])); data:=t1+,+t2+,+t3; sg1.Cells[j,i]:=data; end; end; end; procedure TFEncode.GetLsb; var i,j,x,y,z : integer; hasil : TStringList; KATA,temp:STRING; begin LProses.Caption:=Process : Encode The Binary; LProses.Refresh; sg3.ColCount:=sg1.ColCount*24; sg3.RowCount:=sg1.RowCount; for i:=0 to sg1.RowCount-1 do begin y:=0; for j:=0 to sg1.ColCount-1 do begin kata:=sg1.Cells[j,i]; hasil:=split(kata,,); for z:=0 to 2 do begin temp:=hasil[z]; for x:=0 to 7 do begin sg3.Cells[y,i]:=copy(temp,x+1,1); y:=y+1; end; end; end; end; end; procedure TFEncode.NewRgb; var i,j,y : integer; t1,t2,t3,data:STRING;
23 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

begin LProses.Caption:=Process : Make The Black Image RGB; LProses.Refresh; sg4.ColCount:=sg3.ColCount div 3; sg4.RowCount:=sg3.RowCount; for i:=0 to sg3.RowCount-1 do begin y:=0; j:=0; repeat t1:=sg3.Cells[j,i]; t2:=sg3.Cells[j+1,i]; t3:=sg3.Cells[j+2,i]; data:=t1+,+t2+,+t3; sg4.Cells[y,i]:=data; j:=j+3; y:=y+1; until j>sg3.ColCount; end; end; procedure TFEncode.GetBImage; var mbmp : TBitmap; size, mw, mh, x, y : integer; marr : PRGBArray; KATA:STRING; hasil : TStringList; begin LProses.Caption:=Process : Making Black Image; LProses.Refresh; mbmp := TBitmap.Create; mbmp.PixelFormat := pf24bit; mbmp.Width := sg4.ColCount; mbmp.Height := sg4.RowCount; mw := mbmp.Width; mh := mbmp.Height; marr := mbmp.ScanLine[0]; size := Integer(mbmp.ScanLine[1]) Integer(mbmp.ScanLine[0]); for y := 0 to (mh 1) do begin for x := 0 to (mw 1) do begin //the heart of our mechanism this loop goes through pixels of each row //and we can modify contents of each pixels color data kata:=sg4.Cells[x,y]; hasil:=split(kata,,); marr^[x].Red :=strtoint(hasil[0]); marr^[x].Green := strtoint(hasil[1]); marr^[x].Blue := strtoint(hasil[2]); end; Integer(marr) := Integer(marr) + size; end; EHasil.Picture.Graphic:=mbmp; HW.Caption:=in ostr(mbmp.Width);
24 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

HH.Caption:=in ostr(mbmp.Height); mbmp.Free; end; 0 0 i Rate This Balas 46 pebbie on 13 September 2007 berkata: Tapi yang jadi masalah, waktunya terlalu lama dan sering out of memory. ada ide gimana caranya untuk mempercepat dan meminimalisasi penggunaan memory. hehehe.. pake stringgrid sih.. terlalu banyak konversi string to integer dan sebaliknya yang jadi lama langsung nyemplung ke scanline aja dan beroperasi pada tipe data numerik (integer).. 0 0 i Rate This Balas 47 nonik on 16 September 2007 berkata: mas bagaimana cara mendapatkan nilai pixels biner atau monochrom 0 0 i Rate This Balas 48 pebbie on 17 September 2007 berkata: @nonik: cara sederhananya (walau kurang esien secara memori) dengan mengonversi bitmap dari format pixel pf1bit atau pf4bit menjadi pf24bit. untuk bitmap yang format aslinya adalah biner maka nilai pixel RGB yang ada hanya (0, 0 ,0) dan (255, 255, 255). untuk memeriksa cukup menggunakan properti r (warna merah).

25 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 49 nonik on 17 September 2007 berkata: mas,maksud saya tu bagaimana caranya untuk mendapatkan nilai pixels biner(monochrome) dengan nilai 0 untuk warna hitam dan 1 untuk warna putih,tolong dijawab ya dan kasi tau programnya yang lengkap!!! Makasih banyak ya mas Pebtak doain semoga cepet selesai TA-nya 0 0 i Rate This Balas 50 arfan on 17 September 2007 berkata: mas,boleh ga kalo saya nanya yang bukan masalah citra digital tapi masalah bahasa automata dan teknik kompilasi karena saya bingung harus nanya ke siapa, yang saya tau cuma GAIBlog ini ja, dan kayaknya semua tanya jawab disini cuma mengenai masalah citra digital, makanya saya nanya gitu!?! gimana mas?atau kalo mas tau soal tanya jawab masalah bahasa automata dan kompilasi, tolong mas kasi tau! Makasih 0 0 i Rate This Balas 51 yadi on 19 September 2007 berkata: Mas pebbie..saya minta tolong ni saya buat fungsi untuk baca image bmp grayscale kemudian saya mau ubah nilai matriks pixel bmp ke dalam baris(array) dengan metode zig-zag misalnya. matriks 4 x 4 23 10 3 1 9720 8100 4100 jadi kalo di ubah ke dalam baris [23 10 9 8 7 3 1 2 1 4 1 0 0 0 0 0] saya udah coba buat fungsi untuk matrik ke baris dan posting di delphi-id juga tapi dengan metode berurutan yaitu baris1 lanjut baris selanjutnya.
26 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

gimana mas peb ya kalo dengan metode zig-zag tersebut buat ubah nilai pixel ke baris dengan metode zig-zagmohon bantuannya mas peb.. unit UnitBacaImage; interface uses Unit1,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls, Bu ons, StdCtrls, ExtDlgs; Function BacaImage(x :Timage): Pmatrik; implementation Function BacaImage(x :Timage): Pmatrik; var h,w,i,j : integer; grey : PMatrik; PH byteArray; begin h := x.Picture.Height; w := x.Picture.Width; setlength(grey,h,w); for i:= 0 to h 1 do begin PH := x.Picture.Bitmap.ScanLine[i]; for j:= 0 to w 1 do begin grey[i,j]:= PH[j]; End; End; BacaImage := Grey; end; end. unit UnitMatrikJadiBaris; interface uses Unit1,Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,ExtCtrls,ComCtrls,Bu ons,StdCtrls,ExtDlgs; function matrikjadibaris(B : PMatrik) : PArray; implementation function matrikjadibaris(B : PMatrik) : PArray; var i, j, baris, kolom : integer; indeks : integer; deret : PArray; begin setlength(deret, length(B)*length(B[0])); baris := length(B); kolom := length(B[0]); indeks := 0; for i := 0 to baris 1 do begin for j := 0 to kolom 1 do begin deret[indeks] := B[i][j];
27 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

inc(indeks); end; end; matrikjadibaris := deret; end; end. procedure TForm1.BitBtnWatermarkingClick(Sender: TObject); var hasilpixel : PArray; k : integer; ww : textle; begin data1 := BacaImage(formcitra.Image1); barispixel := matrikjadibaris(data1); end; end. mungkin ini saja mas pebbiemohon maaf, terima kasih. 0 0 i Rate This Balas 52 pebbie on 24 September 2007 berkata: @nonik : sudah cari di google dulu? keywordnya image thresholding @arfan : boleh-boleh saja diskusi tentang otomata dan kompilasi. silakan tulis di bagian request. @yadi : hoo.. maksudnya yang di delphi-id itu toh.. oke saya coba dulu di rumah deh.. lagi di warnet nih.. baru bisa online lagi.. 0 0 i Rate This Balas 53 yadi on 25 September 2007 berkata: asswrwb Mas pebbie..saya lagi sedang ngerjain juga kebetulan dapet algoritma di matlabnyauntuk scan matriks zigzag(M x N).. dan udah saya terjemahanin ke delphinya cuman masih ada hangnya ajasetelah di running saya akan coba terus mas pebbie

28 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

doain ya mas pebbie. terima kasihjadi malu ni. wasswrwb 0 0 i Rate This Balas 54 yadi on 25 September 2007 berkata: Terima kasih banyak mas pebbie. aduh udah hampir sepekan saya nih ngerjainnya alhamdulilllah akhirnya ada solusinya juga sekali lagi terima kasih mas pebbie.. good success selalu buat mas peb..aminnya rabbal alamin. 0 0 i Rate This Balas 55 mukti on 26 Desember 2007 berkata: mas mau nanya nih gimna cara buat program dg delpi untuk nampilkan matrik dari gambar bitmap? Thanks sblmnya 0 0 i Rate This Balas 56 yadi on 17 Januari 2008 berkata: Mau nanya ni Saya ubah gambar RGB ke grayscale / keabuan pakai metode YIQ, sehinggan natinya yang diambil adalah komponen Y saja untuk gambar keabuannya menurut teori yang ada, formulanya dapet dari matlab. kalo di buku pengolahan citra pake delphi (pak ahmad balzah ada) cuman harus pake metode YIQ ini Tapi kenapa hasil konversinya itu bukan seperti gambar grayscale melainkan seperti gambar klise Photo( gambar negatif album photo) Saya deklarasikan tipe
29 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

type PMatrik = array of array of real; DWarna = record biru : PMatrik; hijau : PMatrik; merah : PMatrik; end; YIQ = record Y : PMatrik; I : PMatrik; Q : PMatrik; end; public pixelRGB : Dwarna; keabuan : YIQ; pixelkeabuan,pixelkeabuan2 : PMatrik; Fungsinya seperti ini : function RGBtoYIQ(X : DWarna): YIQ; var y : YIQ; h,w,j,i : integer; begin h := length(x.biru); w := length(x.biru[0]); setlength(y.Y,h,w); setlength(y.I,h,w); setlength(y.Q,h,w); for i:= 0 to h 1 do for j:= 0 to w 1 do begin y.Y[i,j] := 0.299*(x.merah[i,j]) + 0.857*(x.hijau[i,j]) + 0.114*(x.Biru[i,j]); y.I[i,j] := 0.596*(x.merah[i,j]) 0.274*(x.hijau[i,j]) 0.322*(x.Biru[i,j]); y.Q[i,j] := 0.211*(x.merah[i,j]) 0.523*(x.hijau[i,j]) + 0.312*(x.Biru[i,j]); end; RGBToYIQ := y; End; Kemudian saya load gambar RGB procedure TFormUtama.Bu on6Click(Sender: TObject); var fcrgb : string ; begin if (openpicturedialog2.Execute) then begin if (form2 = nil ) then application.CreateForm(TForm2, form2); form2.Image1.Picture.LoadFromFile(openpicturedialog2.FileName); form2.ClientHeight := form2.Image1.Picture.Height; form2.ClientWidth := form2.Image1.Picture.Width; form2.ClientHeight := form2.Image1.Picture.Height; case
30 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

(form2.Image1.Picture.Bitmap.PixelFormat) of pf1bit : fcrgb := biner; pf8bit : fcrgb := keabuan; pf24bit : fcrgb := true color; end; end; end; kemudian lakukan konversi RGB ke grayscale procedure TFormUtama.Bu on7Click(Sender: TObject); begin pixelRGB := BacaImageRGB(form2.Image1); keabuan := RGBtoYIQ(pixelRGB); pixelkeabuan2 := keabuan.Y; edit4.Text := in ostr(length(keabuan.I)); if (form3 = nil) then application.CreateForm(TForm3, form3); form3.Left := form3.Left + 120; form3.Top := form3.Top 25; end; di form3nya untuk menampilkan citra grayscalenya listingnya seperti ini : unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type logpal = record lpal : Tlogpale e; entry : array [0..255] of TPale eEntry; end; type TForm3 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; paletkeabuan : logpal; implementation uses unitutama; {$R *.dfm} Procedure GambarIDwt(y:PMatrik;x:Timage); var
31 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

PH : PbyteArray; bitmap2 :Tbitmap; i,j,p :integer; begin x.Height :=length(y); x.Width :=length(y[0]); bitmap2 := Tbitmap.Create; bitmap2.Height :=length(y); bitmap2.Width :=length(y[0]); x.Picture.Graphic := bitmap2; x.Picture.Bitmap.PixelFormat:= pf8bit; x.Picture.Bitmap.Pale e := createpale e(paletkeabuan.lpal); for i:= 0 to length(y)- 1 do begin PH := x.Picture.Bitmap.ScanLine[i]; for j:= 0 to length(y[0])- 1 do begin p := round(y[i,j]); PH[j]:= p; end; end; end; procedure TForm3.FormCreate(Sender: TObject); var i :integer; begin paletkeabuan.lpal.palVersion := $300; paletkeabuan.lpal.palNumEntries := 256; for i := 0 to 255 do begin paletkeabuan.entry[i].peRed := i; paletkeabuan.entry[i].peGreen := i; paletkeabuan.entry[i].peBlue := i; end; end; procedure TForm3.FormShow(Sender: TObject); begin GambarIDwt(formutama.keabuan.Y,Image1); end; end. 0 0 i Rate This Balas 57 slack_v9 on 30 Januari 2008 berkata:
32 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Selamat sore artikel ini bisa buat analisa pixel sebuah gambar tidak? kaya aplikasi Digital Mark Reader gitu deh, klo bisa kasih tau sintaks contohnya ya Terima kasih 0 0 i Rate This Balas 58 ne2k on 2 Februari 2008 berkata: bantu aku ya. aku mau bikn program delphi untuk konversi bitmap semua bit depth ke format 24bit. ntar bitmapnya mau aku break trus direkonstruksi lg by pixels RGB nya.help me ya makasih 0 0 i Rate This Balas 59 Lukman on 29 Februari 2008 berkata: Salam. Mas, numpang ny ya 1. gimana ya menghitung jarak antara dua titik dalam koordinat logis, mungkin ada source codenya? 2. gmn cara konversi dari koordinat titik pada canvas/image ke DBGrid? Terima kasih sebelumnya.wassalam 0 0 i Rate This Balas 60 tia on 26 Maret 2008 berkata: Salam mas, mo nanya2 ya. 1. gimana cara untuk membuat absis dan ordinat dari suatu gambar???klo bisa ama source codenya ya mas. 2. bagaimana cara mendeteksi posisi pointer dalam gambar?? jadi ketika pointer menunjukkan satu titik di gambar, maka komponen x dan y-nya bisa diketahui. 3. dari gambar topogra, untuk menentukan ketinggian, apa harus di dene satu2 warna dan ketinggiannya??? Makasi mas.

33 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 61 pebbie on 26 Maret 2008 berkata: @Lukman: 1. pakai euclidean distance/panjang vektor aja? len := sqrt(dx*dx+dy*dy) 2. aku tak mengerti pertanyaannya. @tia: 1. aku tak mengerti pertanyaannya. 2. pake event handler OnMouseMove aja 3. kalau warnanya ada dalam fungsi tertentu (mis. greyscale) tinggal ditentukan aja berapa tinggi pada intensitas pixel minimum dan maksimum 0 0 i Rate This Balas 62 CUNGKRING on 26 Mei 2008 berkata: mau bertanya ? kalo image itu bisa dimisalkan dengan matriks lagi ta neeh .ada yang tau ga penggabungan image jadi satu(panorama) algoritmanya apaan? 0 0 i Rate This Balas 63 pebbie on 26 Mei 2008 berkata: @CUNGKRING: image registration 0 0 i Rate This

34 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Balas 64 cungkring on 27 Mei 2008 berkata: sayah masih bingung neeh kalooo penggabungan images bisa di gambarkan dengan matriks transformasi reeksi gak. image mosaik dan image split algoritmanya kaya gimana bisa bantu in mencarikannya ? web nya apaan 0 0 i Rate This Balas 65 lukman on 18 Juni 2008 berkata: maaf mas kl pertanyaanya membingungkan yang no 2. ibu maksudnya. kita punya satu titik di image, kemudian kita proses menjadi data di dalam tabel. Gmana ya mas, cranya. terima kasih seblumnya. 0 0 i Rate This Balas 66 pebbie on 18 Juni 2008 berkata: @lukman: saya masih tidak mengerti dengan pertanyaannya. maksud proses itu apa dan hasil proses (data di dalam tabel) itu seperti apa. 0 0 i Rate This Balas 67 udhin on 10 Juli 2008 berkata: Mas, mau nanya nih? Gimana sih caranya ngitung panjang dan lebar dari suatu gambar sehingga di dapatkan ukuran centi meter bukan pixel? Tolong mas yaa! Makasih.

35 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 68 muna on 8 Agustus 2008 berkata: Mas.mau nanya. aq lagi bikin kompresi citra bitmap pake human coding. Aq bingung nyimpen hasil code binernya untuk nanti proses dekompresi. Apakah disimpan dalam matrik atau gimana tolong ya mas.thanks 0 0 i Rate This Balas 69 seta on 16 Juli 2010 berkata: boleh ga share ma aku mengenai kompresi citra human?? 0 0 i Rate This Balas 70 pebbie on 8 Agustus 2008 berkata: @muna: hasil dekompresi bisa disimpan sementara ke dalam matriks sebelum ditransfer ke bitmap atau le 0 0 i Rate This Balas 71 seta on 16 Juli 2010 berkata: mas muup mw tanya ne.untuk kompresi citra dengan human itu langkah penyusunan koding yang tepat tu kek gimana mas? tengs.

36 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 72 muna on 15 Agustus 2008 berkata: halomas mau nanya lagi nih. nilai2 piksel kalo aq copy ke canvas image kok ada warna merah itu kenapa ya? Aq pernah nyoba nilai piksel gambar aku taruh di stringGrid, terus aq copy lagi ke canvas . Kok ada warna merahnya. makasih sebelunya 0 0 i Rate This Balas 73 pebbie on 15 Agustus 2008 berkata: @muna: kemungkinan nilai yang anda masukkan bernilai 0-255 sedangkan format pixel (properti PixelFormat) dari bitmap image (Image.Picture.Bitmap) bukan pf8bit (pf24bit atau pf32bit). sehingga yang anda atur hanya nilai merahnya saja. *mungkin?* 0 0 i Rate This Balas 74 muna on 16 Agustus 2008 berkata: mas,makasih infonya. Format pixel yang saya masukkan memang 8bit ( grayscale), tetapi di kanvas kok tetep merah. tolong ya mas ya?makasih. 0 0 i Rate This Balas 75 pebbie on 16 Agustus 2008 berkata:

37 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

format pixel 8 bit bukan berarti grayscale (ini kesalahpahaman yang sering terjadi). format pixel 8 bit itu maksudnya setiap pixel menyimpan informasi indeks ke tabel Palet yang elemennya berisi informasi RGB. Bitmap dengan format pixel 8 bit mampu menggunakan model warna RGB tetapi banyaknya warna (kombinasi RGB) maksimum yang dapat ditampilkan hanya 256 warna saja. 0 0 i Rate This Balas 76 muna on 16 Agustus 2008 berkata: Alow mas pebbie. Mau nanya lagi neh. Masih bingung..maklum ilmunya masih dangkal. Misalkan ada program simpan nilai piksel ke stringgrid spt ini if( image1.Picture.bitmap.PixelFormat= pf8Bit) then begin for y := 0 to image1.Picture.Height-1 do begin Pimg := image1.Picture.Bitmap.ScanLine[y]; for x := 0 to image1.Picture.Width-1 do begin ST.Cells[x,y] := IntToStr(Pimg[x]); end; end; Terus dari nilai2 di cell stringGrid aq simpan di image canvas begini image2.ClientHeight:=St.colCount; image2.ClientWidth:=St.RowCount; for j:=0 to image2.Height-1 do for i:=0 to image2.Width-1 do form1.Image2.Canvas.Pixels[i,j]:= strtoint( st.cells[i,j]); Hasilnya gambarnya ada merah2nya n setelah aq liat nilai pikselnya kok lain..Nilainya sekitar 31-an.. Terus yang bener gimana mas biar nilai dari stringGrid jadi nilai piksel di image itu? Thanks bgt ya mas.. Mohon responnya

38 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 77 pebbie on 16 Agustus 2008 berkata: kalau gambarnya greyscale waktu menulis kembali ke canvas seperti ini : tmp := strtoint(st.cells[i,j]); form1.image2.Canvas.Pixels[i,j] := RGB(tmp, tmp, tmp); atau PALETTERGB(tmp, tmp, tmp) 0 0 i Rate This Balas 78 muna on 17 Agustus 2008 berkata: muna lagi nih mas, yang kmarin tak coba sdh bisa, tapi nilai pixel nya jadi berubah ya? makasih buuuanget ya. Kalau gambarnya 8 bit yang bukan grayscale (RGB) menuliskan kanvasnya gimana? thanks yadi tunggu. 0 0 i Rate This Balas 79 muna on 26 Agustus 2008 berkata: Mas peb.. Mau tanya. Caranya menuliskan ke canvas untuk indeks palet gimana (citra 8 bit) . Yang mana nilai indeks paletnya dari stringgrid. Mohon rsponnya ya mas. Dah nyari2 ga bisa juga maksih

39 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 80 pebbie on 26 Agustus 2008 berkata: kalau untuk citra 8 bit, pakai ini (komponen TBitmap) procedure putpixel(bmp: TBitmap; x,y:integer; idxwarna:byte); var p : PByteArray; begin p := bmp.Scanline[ y ]; { asumsi bmp.PixelFormat = pf8bit; } p[ x ] := idxwarna; end; 0 0 i Rate This Balas 81 mei on 25 Oktober 2008 berkata: bie mau nanya.. saya baru belajar g image masih pemula. 1. misalnya ada citra ukuran 3030 apakah berarti jumlah pixelnya = 900? 2. gimana mencari nilai masing2 R dan G dan B dari sebuah citra RGB, apakah ada rumusnya? 3. apakah citra RGB itu harus dirubah ke Greyscale dulu untuk mendapatkan informasi nilai matriksnya? makasih jawabannya,.. 0 0 i Rate This Balas 82 pebbie on 25 Oktober 2008 berkata: @mei: silakan, saya jawab sebisanya yah. 1. betul. 2. citra RGB bisa jadi beberapa macam - citra 4 atau 8 bit, maksudnya tiap pixel direpresentasikan dengan byte (8 bit) atau satu byte untuk 2 pixel. oleh sebab itu nilai yang mungkin adalah sebanyak 256 kombinasi warna. 256 kombinasi
40 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

warna ini menggunakan tabel look-up yang berisi nilai RGB. jadi belum tentu pixel bernilai 0 itu hitam (R=0, G=0, B=0) tetapi tergantung pada nilai RGB di tabel palet indeks ke 0 (bisa saja justru di tabel palet indeks ke 0 kita berikan warna putih (R=255, G=255, B=255)) - citra 16 bit, jadi tiap pixel direpresentasikan sebagai 2 byte (16) bit. citra 16 bit sudah mengalokasikan nilai RGB pada tiap pixel/titiknya jadi tidak memerlukan tabel palet. yang perlu diperhatikan adalah bagaimana nilai RGB dikodekan ke variabel berukuran 16 bit. kemungkinan yang umum ada 2 yaitu tiap komponen warna mendapat jatah 5 bit sehingga 1 bit sisanya tidak terpakai. atau komponen yang ada di tengah (hijau) mendapat jatah lebih yaitu 6 bit (R5G6B5). - citra 24 bit, tiap pixel direpresentasikan sebagai 3 byte. oleh sebab itu tiap komponen mendapat jatah 1 byte. kemungkinan warna yang dihasilkan adalah 2 milyar warna. - citra 32 bit, tiap komponen tetap dialokasikan sebagai 1 byte namun 1 byte terakhir kalau digunakan maka biasanya berisi informasi untuk operasi penggabungan citra (image blending). untuk mendapat nilai RGB dari citra bisa baca lagi tulisan saya di atas dari awal menggunakan Pixels dan 3 fungsi Get[R,G,B]Value(dword) 3. tidak harus, tergantung nilai apa yang ingin didapat. kalau memang informasi yang diinginkan adalah intensitas (luminansi) maka betul, harus dikonversi atau tiap pixel dimasukkan ke fungsi penghitung nilai intensitas luminansinya. kalau informasi yang diinginkan adalah spektrum warna (hue) maka lain lagi. 0 0 i Rate This Balas 83 Yohanes on 29 Oktober 2008 berkata: Mas, senang bisa nemuin blog ini, Ada mau nya se he Gini mas, q mw bikin aplikasi pake JST backpropagation tp mw gunain delphi, masalahnya q nda ngerti gmn untuk source coding algoritmanya pada delphi, bs bantu mas? Thanks ya 0 0 i Rate This Balas 84 Agnes on 29 Oktober 2008 berkata: Mas Feb, untuk ekstrasi audio bisa pake metode LPC (linier predictive Coding) kan? trus untuk aplikasinya bisa pake delphi? ada codingnya nda? Kalau untuk transformasinya sinyal pake apa? thanks banget.

41 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 85 pebbie on 31 Oktober 2008 berkata: @Yohanes:sabar ya, baru masuk antrian draft posting. mudah-mudahan minggu depan sudah bisa ditampilkan pembahasan dan implementasinya dengan delphi. @Agnes: ya, LPC bisa digunakan untuk menganalisis sinyal dalam ranah sekuensial (mis. suara). tapi saya belum pernah membuat implementasinya. 0 0 i Rate This Balas 86 derim on 1 November 2008 berkata: nih saya derim. di delphi-id yang nanya tentang extract warna. 1. apa bedanya akses pixel dengan scanline? 2. apa maksud nilai y dibawah ini: p := b.Scanline[y]; 0 0 i Rate This Balas 87 pebbie on 1 November 2008 berkata: @derim: akses menggunakan Pixels lebih lambat dan menghasilkan TColor, untuk mendapatkan nilai komponen R,G,dan B-nya perlu menggunakan fungsi lain (misal GetRValue(c)) sedangkan kalau menggunakan scanline yang dihasilkan adalah pointer ke memori yang menyimpan masingmasing pixel dalam representasi yang bergantung pada nilai PixelFormat. untuk kasus di atas saya asumsikan PixelFormat-nya bernilai pf24bit. jadinya, tiap pixel disimpan sebagai 3 byte. maksud y itu adalah baris (nilai yang valid adalah 0 sampai Tinggi Bitmap atau banyaknya baris dikurangi 1). baris pertama (y=0) adalah baris yang paling atas.

42 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 88 irno on 1 November 2008 berkata: wah makasih bgt mas pebbie buat mas Yohannes, kok sama yaw keinginan dan maksud kita saya juga menunggu lho Mas Pebbie semoga ilmu Anda yang bermanfaat kelak menjadi pendamping setia di alam baka.. terima kasiiih 0 0 i Rate This Balas 89 Princess on 14 November 2008 berkata: hai..mas ato siap yang bisa bantu aq , cara mendeteksi wajah pada hasil pengambilan gambar dari webcam ya(face rezognation)!!!dan kalo bisa dikasi sorce codenya dengan menggunakan delphi. AQ baru bisa sampe proses pengolahan image itu sampe proses treshold, bagai mana cara selanjutnya agar kita dapat meng akses wajh orang pada gamabr yang bergerak, bukan gambar statis kayak photo, tapi hasil gambar pada pengambilan dari web cam, 0 0 i Rate This Balas 90 Pangeran on 22 November 2008 berkata: Salam kenal k,,aq dari kupang,aq senang ktmu blog ini.. pertanyaannya: 1. KK tahu caranya membersihkan canvas pada image, maksudnya gini,,Sebagai contoh: Dalam 1 aplikasi aq taruh 1 bh image,1 buah bu on yg captionnya persegi dgn sintaks image1.canvas.rectangle(100,200,400,600),lalu ada 1 bh bu on yg captionnya New/Baru,,nah kk tahu sintaks untuk tombol baru,,tolong ya k..

43 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

2. dalam procedure oodll,ada parameter Tllstyle,,untuk mengisi Tllstyle contohnya adalah fsborder,selain fsborder nasih ada yg lain ?? Tolong buat daftarnya yah.. soalnya pada turbo pascal llstyle nya agak beda dgn pada delphi. 3. kk tahu caranya menggerakkan citra pada image delphi sehingga bisa di simpan dengan ekstensi GIF..? klo bisa dengan cintohnya ya 0 0 i Rate This Balas 91 Pangeran on 22 November 2008 berkata: oh iya masih ada yg ingin tahu nih.. - Secara Default pixelFormat pada Timage brp bit ?? lalu klo mw pakai 24 bit bgmana caranya supaya gmbr rectangle atau ellips dsb bisa ditampilkan di image - Apa image dgn pixelFormat 24bit lebih bagus gambarnya jika dikonversi menjadi jpg/bmp image - lalu apa perbedaan terbesar dari pixel yg berformat 8bit,24bit,32bit dll,tolong ya kk - Tolong juga kasi daftar style untuk Brushstyle dan Penstyle pada canvas image - Yg terakhir untuk procedure ARC, aq rada-rada bingung nih,soalnya parameternya sdkt berbeda dgn di pascal, Procedure ARC(x1:integer;y1:integer;x2:integer;y2:integer;x3:integer;y3:integer;x4:integer;y4:integer); x1,y1-x2,y2 aq ngerti tapi x3,y3,x4,y4 aq bingung jadi misalnya diaplikasikan dengan SpinEdit yg memiliki nilai integer..aq harus kasih maxvaluenya berapa untuk x3,y3,x4,y4..jelaskan dong x3,y3 dan x4,y4 supaya misalnya arc yg ingin dibentuk bisa jadi sesuai dgn yg diinginkan makasih banyak ya atas jawabannya. 0 0 i Rate This Balas 92 pebbie on 23 November 2008 berkata: @pangeran : 1. clear canvas : pakai saja FillRect seperti berikut with image1.canvas do begin Brush.Style := bsSolid; Brush.Color := clWhite; { warna latar belakang, misal putih } Pen.Style := psClear; FillRect(Image1.ClientRect); Pen.Style := psSolid;
44 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

end; 2. dari denisi oodFill sbb procedure FloodFill(X, Y: Integer; Col: TColor; FillStyle: TFillStyle); parameter FillStyle ada 2 yaitu: fsBorder : ini mirip boundary ll, arsir akan dilakukan sampai ketemu pixel berwarna Col (sebagai batas) fsSurface : arsir dilakukan selama pixel yang ditemui warnanya sama dengan Col 3. maaf, nggak bisa bantu (silakan cari sendiri di google) 4. default pixelformat saya tidak tahu, sepertinya kalau tidak pf32bit maka akan mengikuti se ing display monitor. 5. untuk menggambar (rectangle, elips) tidak terpengaruh oleh properti PixelFormat. gunakan saja prosedur gambar dari TCanvas 6. bit depth (pixel format) akan mempengaruhi sebanyak apa kombinasi warna yang bisa disimpan dalam image. misal untuk pf8bit maka kombinasi warna yang mungkin hanya sebanyak 28 atau 256 warna saja. sedangkan 24 bit dapat menyimpan kombinasi warna merah sebanyak 256 warna, hijau, dan biru sehingga total sebanyak ~ 2 milyar warna (oleh sebab itulah disebut true color), 16 bit dapat menyimpan kombinasi 65 ribu warna. khusus untuk 32 bit, banyaknya warna yang bisa disimpan sama dengan 24 bit, sedangkan 8 bit sisanya biasanya tidak digunakan atau digunakan untuk menyimpan informasi transparansi (alpha channel) untuk melakukan penggabungan (blending) citra. 7. daftar style bisa dilihat sendiri di Help delphi 8. prosedur Arc (garis lengkung) parameter x1y1 dan x2y2 sama seperti menggambar elips dengan tambahan x3y3 dan x4y4, parameter ini adalah parameter untuk membatasi garis elips yang digambar. misal dari titik tengah elips (misal x0y0) ditarik garis ke x3y3 dan x4y4 maka garis elips yang digambar hanyalah dari titik perpotongan garis elips dengan garis x0y0-x3y3 dan perpotongan garis elips dengan garis x0y0-x4y4 melawan arah gerakan jarum jam. 0 0 i Rate This Balas 93 teamburger on 25 November 2008 berkata: Mas Pebbie, maaf kalo mau ngerepoti .. (udah stress banget) saya coba2 mau ganggu image hasil steganogra, bisa minta tolong dikasih lihat full-script untuk menampilkannilai RGB dalam stringgrid? saya udah coba script mas Pebbie diatas (jawaban untuk mas Tris), tapi kok ga berhasil terus. kalo bisa caranya mengembalikan nilai di stringgrid ke image lagi, please Oh ya saya ngeload gambarnya pake openpicture dialog. tolong mas ya, rencananya saya mau ubah nilai RGB tersebut dengan nilai yang lain (seakan2 image
45 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

yang dikirim terkena noise), sehingga saat dikembalikan ke image lagi apakah data yang tersembunyi didalamnya masih bisa dipertahankan 0 0 i Rate This Balas 94 pebbie on 26 November 2008 berkata: @teamburger:kalau tujuannya mau dikembalikan lagi ke image lebih baik nggak perlu ke stringgrid, soalnya cuma buang2 waktu aja. lebih baik langsung diubah di pixelnya. pakai saja kode getpixel dan putpixel di atas. jadi prosesnya - baca nilai RGB (pakai GetPixel) - ubah nilai RGB (r, g, dan b) - tulis kembali ke image (pakai PutPixel) 0 0 i Rate This Balas 95 ar an on 27 November 2008 berkata: misal saya punya image diform bagaimana caranya agam image tersebut memutar gambar 90 drjt, 180 drjat dgn menggunakan pixel dan gimana caranya memutar vertikal dan horizontal tks. 0 0 i Rate This Balas 96 Pangeran on 28 November 2008 berkata: klo buat warna background pada image aq menggunakan akses pixel dgn colordialog sehingga sintaksnya canvas.pixel[i,j]:=colordialog1.lename,,dgn i,j adalah image width dan image height..kk bisa kasih sintaks dgn scanline,untukpemilihan warnanya aq menggunakan colordialog.

46 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 97 Pangeran on 30 November 2008 berkata: sebenarnya aq lgi susun skripsi,bisa minta pendapat k pebbie..waktu kuliah graka komputer kami menggunakan pascal..sekarang aq coba buat seperti itu utk menampilakan citra di delphi..kira-kira judul apa yang pa bwt skripsis..soalnya aq bingung menyusun kata-kata yg pas bwt menentukan judul 0 0 i Rate This Balas 98 pangeran on 8 Desember 2008 berkata: sebenarnya aq lgi susun skripsi,bisa minta pendapat k pebbie..waktu kuliah graka komputer kami menggunakan pascal..sekarang aq coba buat seperti itu utk menampilakan citra di delphi..kira-kira judul apa yang pas bwt skripsis..soalnya aq bingung menyusun kata-kata yg pas bwt menentukan judul.. 0 0 i Rate This Balas 99 Yohanes on 11 Desember 2008 berkata: Mas Pebbie, gmn tuh pembahasan dan implementasi JST algoritma backpropagation dengan delphi? Hemenagih janji nih,^_^ Sibuk ya Mas 0 0 i Rate This

47 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Balas 100 echy on 18 Januari 2009 berkata: mas,sorry neh mo nanya tentang J2ME,ada gamethod untuk mengambil pixel di J2ME? thanks 0 0 i Rate This Balas 101 pebbie on 18 Januari 2009 berkata: @echy: pakai method getRGB dari class Image int[] imageData = new int[inputImage.getWidth() * inputImage.getHeight()]; inputImage.getRGB(imageData, 0, inputImage.getWidth(), 0, 0, inputImage.getWidth(), inputImage.getHeight()); nanti untuk mengakses tiap pixelnya (r, g, b) di posisi (X, Y) dari image data pakai formula int int int int pixel = imageData[Y * inputImage.getWidth() + X]; r = 0xFF & (pixel >> 16); g = 0xFF & (pixel >> 8); b = 0xFF & pixel; 0 0 i Rate This Balas 102 Pangeran on 17 Februari 2009 berkata: k pebie kenapa nama komponen di delphi awalannya selalu huruf T ? sepert Tcanvas,Tbu on,Tform dlll Apa artinya atau singkatannya.. Makasih ya 0 0 i Rate This Balas 103 pebbie on 17 Februari 2009 berkata:
48 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Pangeran: itu cuma kesepakatan penulisan aja kok.. untuk menyatakan bahwa itu adalah tipe baru (baik itu sebagai kelas atau record) sehingga kalau memberi nama variabel tinggal membuang Tnya saja (contoh praktisnya). 0 0 i Rate This Balas 104 pangeran on 21 Februari 2009 berkata: ka misalnya klo untuk objek bitmap tipe datanya Tbitmap, klo giv ..? makasih 0 0 i Rate This Balas 105 pangeran on 25 Februari 2009 berkata: ka klo pada objek edit kita bisa melakukan setfocus dgn menekan tombol enter pada keyboard misalnya dgn perintah pada event onkeypress if key =#13 then edit2.setfocus; kenapa pada object spinedit tidak bisa ,,kk tau caranya? 0 0 i Rate This Balas 106 Adnan on 11 Maret 2009 berkata: Salam kenal pak Peb Ruswono Aryan Nama saya adnan, alumni teknologi pascapanen IPB. Pertama berkenalan dengan citra digital saat ambil kuliah matakuliah ini. Semenjak itu bisa dibilang saya jatuh cinta dengan ilmu pengolahan citra digital ini, hanya sayang saya tidak mengerti banyak tentang bahasa pemrograman karena latar belakang bukan ilmu komputer tapi pertanian. Di bidang pascapanen, Image process sangat berguna untuk inspeksi atau sortasi hasil panen, atau mengamati perubahan warna pada hasil panen selama penyimpanan. Dengan citra digital ini, tentu pengamatan warna dan tekstur tersebut menjadi sangat cepat dan relatif murah. Bayangkan saja, alat standar untuk pengamatan warna skala lab paling muran harganya Rp 40 juta (pasti sekarang harganya lebih mahal lagi). sedangkan dengan ilmu image process cukup bermodalkan program
49 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

aplikasi, web kamera dan buku pemrograman:-). Program pengamatan warna yang pernah saya buat untuk tesis saat itu dalam bahasa basic. Sekarang saya mencoba belajar untuk membuatnya dalam bahasa delphi. Saat ini saya menjadi peneliti pasca panen di BPTP Papua. Alat-alat pasca panen yang menunjang untuk penelitian pascapanen bisa dibilang tidak ada disini. jadi yang bisa saya gunakan untuk tool penelitian pascapanen adalah image process ini. Saya ke pulau yang besarnya 3 kali pulau jawa ini hanya bermodal laptop, web cam dan buku delphi. Saya minta bantuan pak peb. Misalkan saya ingin menampilkan warna merah (kalau sudah bisa ketemu nanti juga bisa untuk mencari nilai D, B dan HSI pastinya). Dengan algoritma yang mirip waktu saya buat menggunakan VB, ternyata tidak bisa diterapkan di delphi. Dari beberapa literatur yang saya dapat, saya membuat seperti ini kode delphinya: procedure TFormUtama.Bu on1Click(Sender: TObject); var i, j, merah : integer; R, total : extended; tempR: byte; P : pbytearray; begin total := 0; tempR := 0; R := 0; for i:= 0 to (formhasil.image.picture.height-1) do begin P := formhasil.image.picture.bitmap.scanline [i]; for j:= 0 to (formhasil.image.picture.width-1) do begin tempR := round (P [3*j+2]); R := round (R + tempR); total := total + 1; end; merah := round (R/ total); edit1.text := in ostr (merah); end; end; setelah program dijalankan ada keterangan sebagai berikut: [Hint] UnitUtama.pas(193): Value assigned to tempR never used Dugaan saya berarti nilai R tidak pernah diperoleh dari scanline P. dan memang nilai merah dari gambar yang telah diketahui nilai R nya sebelumnya, yang ditampilkan pada Tedit nilainya ngawur. Saya mohon bantuan pak peb untuk memberitahu saya bagaimana seharusnya kode tersebut ditulis. Terimakasih banyak sebelumnya

50 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 107 pebbie on 11 Maret 2009 berkata: mungkin maksudnya nilai tempR tidak pernah digunakan itu bukan yang di dalam loop, tetapi yang di luar loop (inisialisasi tempR dengan 0 padahal di dalam loop nilai tempR selalu diperbaharui) procedure TFormUtama.Button1Click( Sender: TObject ); var i, j, merah : integer; R : extended; total : integer; tempR : byte; P : pbytearray; begin total := 0; R := 0; for i := 0 to ( formhasil.image.picture.height - 1 ) do begin P := formhasil.image.picture.bitmap.scanline[i]; for j := 0 to ( formhasil.image.picture.width - 1 ) do begin tempR := P[3 * j + 2]; R := R + tempR; total := total + 1; end; merah := round( R / total ); edit1.text := inttostr( merah ); end; end; 0 0 i Rate This Balas 108 adnan on 13 Maret 2009 berkata: tanks bro, thats so helfull. terimakasih koreksiannya ya

51 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 109 putriE on 17 Maret 2009 berkata: KK tau di halaman mana komponen TBaseReport berada..? Cara menginstalnya pada delphi 7 bagaimana caranya..? Thx atas jwbnya 0 0 i Rate This Balas 110 may on 21 Maret 2009 berkata: hai mau nanya nih kak tau cara menghapus salah1 object pada kanvas image sehingga mirip seperti fasilitas erase di paint bawaan windows 0 0 i Rate This Balas 111 pebbie on 21 Maret 2009 berkata: @may:menghapus pada paint sama dengan menggambar dengan warna arsir yang sama dengan warna kanvas (mis. putih). 0 0 i Rate This Balas 112 may on 25 Maret 2009 berkata:

52 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

thx atas jawabannya,,mau nanya lagi nih,,dosen aq suruh buat scalling gambar,misalnya seperti di Paint itu , objek gras yang ditarik kesamping dgn mouse akan membesar,jika di tarik kembali ke kiri akan kembali seperti semula,,kak bisa bantu sintaxnya dengan menggunakan delphi..? 0 0 i Rate This Balas 113 ranee on 26 April 2009 berkata: mas..peb.. boleh nanya dunk.. 1. buat greyscale di video, gimana ya caranya? klo dari image dah bisa. aq ganti picture.bmp ke video avi ga bisa. 2. capture image real time with webcam per satuan waktu, pakenya grabber ma tscap32. gimana caranya ya? thx b4.. ranee.. 0 0 i Rate This Balas 114 paul on 9 Mei 2009 berkata: bantuin aq dunk aq mau mendeteksi bangun datar, pakai metode chain code, aq bingun mengenali polanya, terus algoritma sama programnya aq juga belum begitu jelas.bantuin yathks bgt 0 0 i Rate This Balas 115 adhye on 10 Juni 2009 berkata: mas saya mau tanya,bagaimana cara membagi nilai pixel pada image dengan menggunakan Teknik Multiple Description Coding?

53 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 116 ranee on 5 Agustus 2009 berkata: mas mau tanya gimana caranya ngluarin matrix image monochrome? kebanyakan contoh2 RGB.. lg belajar jd malah tambah bingung. 0 0 i Rate This Balas 117 Benk on 7 Agustus 2009 berkata: mas bisa ngasi contoh sintak zoom image menggunakan delphi egak? Pleaze.. 0 0 i Rate This Balas 118 Daryl on 11 Oktober 2009 berkata: Peb gw mau tanya neh kalo gue mau buat face recognition untuk di delphinya apa harus pake region ?? oiaa punya source code wavelet di delphi nda butuh bgt neh makasii peb 0 0 i Rate This Balas 119 rera on 14 Oktober 2009 berkata: terimakasih

54 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 120 yolan on 11 Januari 2010 berkata: mas sta mw tx program pencerminan donk 0 0 i Rate This Balas 121 Rendy on 29 Maret 2010 berkata: Mas Pebbie, aku mau tanya nie mengenai Reeksi / pencerminan dengan menggunakan VB 6 source code nya bgmn, aku bingung megenai tgs itu yg kurang.. mohon bantuannya mas. Pencerminan/Reeksi Gambar 1 dicerminkan -> Menjadi Horizontal Gambar 1 dicerminkan -> Menjadi Vertikal Thanks. 0 0 i Rate This Balas 122 Meisya on 1 Mei 2010 berkata: mas,, mw tanya,, gimana caranya mendeteksi kemiringan image, merotasi image dengan sudut bebas,, asumsi gambar tidak tegak lurus,, dibuat jadi tegak lurus,, *ingin implementasi utk citra hasil scan,, dibaca kemiringanny,, trus diluruskan mohon bantuannya,, makasi

55 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

1 0 i Rate This Balas 123 angel on 25 Juli 2010 berkata: mas mw nanya soal citra human negimana cara misah intensitas warnanyaRGBnya? kalo ga salah pertama harus dipisah dulu kan intensitas warnayasetelah tu dikompres satu satu tiap intensitas warna tsb? mksh 0 0 i Rate This Balas 124 Alex on 28 November 2010 berkata: mas peb saya mw nanya nih.. saya ada penggalan script stegano untuk penulisan saya.. bisa tolong dijelaskan maksut script ini..soalnya saya bingung..mohon bantuannya.. //sisip pesan pesan:=memoTulisPesan.Lines.Text; BinerPesan:=; PanjangText:=length(memoTulisPesan.Lines.Text); for i:=1 to PanjangText do begin BinerPesan:=BinerPesan+biner(ord(pesan[i])); end; n:=1; for j:=1 to ImageFile.Height-1 do begin for i:=0 to ImageFile.width-1 do begin inc(z); merah:=GetRValue(getpixel(ImageFile.Canvas.Handle,i,j)); hijau:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,j)); biru:=GetGValue(getpixel(ImageFile.Canvas.Handle,i,j)); BinerMerah:=biner(merah); BinerHijau:=biner(hijau); BinerBiru:=biner(biru); delete(BinerMerah,8,1); delete(BinerHijau,8,1); delete(BinerBiru,8,1); BinerBiru:=BinerBiru+BinerPesan[n]; BinerHijau:=BinerHijau+BinerPesan[n+1];
56 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

BinerMerah:=BinerMerah+BinerPesan[n+2]; n:=n+3; MerahBaru:=decimal(BinerMerah); HijauBaru:=decimal(BinerHijau); BiruBaru:=decimal(BinerBiru); setpixelV(hdc1,i,j,RGB(MerahBaru,HijauBaru,BiruBaru)); if n>length(BinerPesan) then break; end; if n>length(BinerPesan) then break; end; 0 0 i Rate This Balas 125 qeera on 30 Desember 2010 berkata: salam kenal, mas peb 0 0 i Rate This Balas 126 qeera on 30 Desember 2010 berkata: salam kenal, mas peb saya mau tnya? saya sudah membuat aplikasi kompresi citra dengan delphi menggunakan metode singular value decomposition dari beberapa literatur yang saya baca seharusnya image hasil kompresi jauh lebih kecil ukurannya dibanding dgn citra asli nah yang saya bingung kok hasil yang saya buat justru lebih besar ukuran lenya. saya sudah cek teori SVDnya sudah benar. menurut mas peb gmn?terima kasih sebelumnya. 0 0 i Rate This Balas 127 Ri on 25 Januari 2011 berkata:

57 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

Salam kenal mas. Saya masih newbie, mau tanya cara mengubah matriks ke bentuk gambar gimana ya? 0 0 i Rate This Balas 128 Dwiky on 28 Mei 2011 berkata: asssalam kenal..aku lagi nyelesain skripsi mas.. mau tanya gmn y caranya scanning RGB dari webcam..aku uda pake DSPACK mas.. jadi stelah di proses yang tampil cm obyek dengan RGB yang di se ing kalo bs minta listing programnya mas,,,masih newbie mas mslahnya,,, thanks mas..sukses selalu 0 0 i Rate This Balas 129 safriadi on 21 Juni 2011 berkata: saya ada masalah dikit dengan masalah pemograman di vb Private Sub Invert_Click() Dim r, g, b, PixLong As Long frmPicture.StatusBar1.Panels(1).Text = Please Wait frmPicture.StatusBar1.Panels(1).AutoSize = sbrSpring For i = 0 To frmPicture.imgload.ScaleHeight 1 For J = 0 To frmPicture.imgload.ScaleWidth 1 PixLong = GetPixel(frmPicture.imgload.HDC, J, i) RGBcolors = GetRGB(PixLong) r = 255 RGBcolors.red g = 255 RGBcolors.green b = 255 RGBcolors.blue SetPixel frmPicture.imgload.HDC, J, i, RGB(r, g, b) Next J frmPicture.imgload.Refresh DoEvents Next i frmPicture.StatusBar1.Panels(1).Text = frmPicture.Pictemp.Picture = frmPicture.imgload.Image frmPicture.Pictemp.Refresh

58 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

End Sub pada saat saya lakukan prose bermasalah dengan GetRGB pesan yang muncul FUNCTION NOT DEFINED TOLONG PENCERAHANYA..? 0 0 i Rate This Balas 130 issackryan on 29 September 2011 berkata: gan ane ne pemula di delphi,tolong dong ksh tw program delphi yang bs bc bit pada kata ato le 0 0 i Rate This Balas 131 andhie on 30 Oktober 2011 berkata: bang kira2 ini maksudx apa ya? var x, y, w, h, k, l: integer; PC, PH: PByteArray; Ki, Ri, Gi, Bi, Ko, Ro, Go, Bo: array of array of byte; jumlah: real; begin Randomize; w := FormCitra.Image.Picture.Width; h := FormCitra.Image.Picture.Height; if (FormCitra.Image.Picture.Bitmap.PixelFormat = pf8bit) then begin SetLength(Ki, w, h); SetLength(Ko, w, h); for y := 0 to h-1 do begin PC := FormCitra.Image.Picture.Bitmap.ScanLine[y]; PH := FormHasil.Image.Picture.Bitmap.ScanLine[y]; for x := 0 to w-1 do begin Ki[x, y] := PC[x]; Ko[x, y] := PH[x]; end;
59 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

end; for x := M to w-M-1 do for y := N to h-N-1 do begin jumlah := 0; for k := -M to M do for l := -N to N do jumlah := jumlah+Ki[x-k,y-l]*Mask[k,l]; if (Round(jumlah) 255) then Ko[x,y] := 255 else Ko[x,y] := Round(jumlah); end; for y := 0 to h-1 do begin PH := FormHasil.Image.Picture.Bitmap.ScanLine[y]; for x := 0 to w-1 do PH[x] := Ko[x, y]; end; Ki := nil; Ko := nil; end; masi pemula bang trus itu fungsinya buat apa? terima kasih 0 0 i Rate This Balas 132 agus on 12 Desember 2011 berkata: mas sya lagi ada tugas kuliah tentang steganogra pada citra jpg. kata dosen saya citra jpeg itu didecoding dulu sampai ketemu komponen dctna.. mohon bimbingan dari mas agus kerena saya sangat tidak mengerti cara mencari omponen itu. 0 0 i Rate This Balas 133 bayu on 12 Mei 2012 berkata: pagi, maaf mau numpang nanya kalo misal kita punya le gambar/foto (apapun formatnya) yang memiliki kapasitas 10mb, nah yang mau saya tahu bagaimana caranya kita mendapatkan/menghitung pixelnya kemudian dari pixel tersebut terdapar RGBnya/byte kemudian
60 of 62 20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

lagi berapa nilai bitnya, sedangkan kita mau cari adalah nilai bit dalam bentuk binernyamohon teori atau pencerahannyaterima kasih. 0 0 i Rate This Balas 134 Kallon on 11 Oktober 2012 berkata: cara menampilkan bilingan 0-255 pada citra digital degan delphi.. tolong ya!! Kallon Thanks b4 0 0 i Rate This Balas 135 Samsu Arif on 17 Juli 2013 berkata: Mau nanya mas, Gimana menampilkan image dengan nilai pikselnya real,misalkan : 2.3, 2.8 dst. jadi bukan nilai dari 0-255. 0 0 i Rate This Balas 136 pebbie on 18 Juli 2013 berkata: kalau nilainya real bisa dinormalisasi dari min..max ke rentang intensitas 0..255 (dibulatkan) 0 0 i Rate This Balas 137 Asih on 22 Agustus 2013 berkata: bagi ilmu dong mas, metode canny pake delphi.dan nampilin koordinatnya trims.

61 of 62

20/11/2013 0:10

mengakses pixel | GAIBlog

http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/

0 0 i Rate This Balas 1 Zig-Zag Image Scanning GAIBlog

Blog pada WordPress.com. Tema: Unsleepable oleh Ben Gray. Ikuti

Follow GAIBlog
Powered by WordPress.com

62 of 62

20/11/2013 0:10

Anda mungkin juga menyukai