akses pixel

62
GAIBlog mengakses pixel 03apr07 Pada pertemuan pertama dalam kuliah grafika komputer ada satu hal penting yang ditanyakan (dijadikan tugas ) yaitu bagaimana caranya menampilkan titik dengan warna tertentu di layar monitor (dengan mengakses framebuffer) 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 grafik 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 : 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 Grafika 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 (grafika). Untuk menggunakan scanline dengan nyaman ada beberapa hal yang perlu untuk dideklarasi terlebih dahulu. 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); 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 } About these ads (h p://en.wordpress.com/about-these-ads/) mengakses pixel | GAIBlog http://pebbie.wordpress.com/2007/04/03/mengakses-pixel/ 1 of 62 20/11/2013 0:10

Upload: juli-adi-prastyo

Post on 29-Dec-2015

261 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Akses Pixel

GAIBlog

mengakses pixel 03apr07Pada pertemuan pertama dalam kuliah grafika komputer ada satu hal penting yang ditanyakan(dijadikan tugas ) yaitu bagaimana caranya menampilkan titik dengan warna tertentu di layarmonitor (dengan mengakses framebuffer) dan mendapatkan deskripsi tentang warna dari titik dengankoordinat tertentu di layar. Dalam dunia DOS dulu, hal ini mudah saja (dalam berbagai asumsi) untukdilakukan yaitu dengan mengakses memori pada alamat $A0000 dengan data yang dapat diaksestergantung dari mode grafik 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 merupakanmilik dari kelas turunan TWinControl seperti TForm. contoh penggunaan Pixels adalah sebagaiberikut :

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 lebihcepat. saya pertama kali merasakan lambatnya Pixels ketika mengikuti kuliah Grafika Komputer (3tahun yang lalu) dan membuat tugas menggunakan Delphi (tadinya pakai turbo pascal 7) tapi akhirnyamengikuti 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 sayamenggunakan komponen TImage dan di dalam TImage ada properti Picture yang kemudian propertiBitmap yang merupakan kelas bertipe TBitmap (garing hehehe..) yang akhirnya sampai sekarang sayagunakan untuk keperluan pengolahan citra ataupun menggambar (grafika). Untuk menggunakanscanline dengan nyaman ada beberapa hal yang perlu untuk dideklarasi terlebih dahulu.

12345678910111213

{ 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);

12345678910

type{ asumsi PixelFormat yang digunakan adalah 24 bit (pf24bit) }TWarnaRGB = packed recordb, g, r : Byte;end;

{ packed; jadi 1 record ukurannya persis 3 byte,klo nggak pake packed nanti ukurannyadi-align ke 4 byte jadinya 4x3 = 12 byte; }TArrRGB = array[0..65535] of TWarnaRGB;PArrRGB = ^TArrRGB; { tipe properti scanline adalah Pointer }

About these ads (h p://en.wordpress.com/about-these-ads/)

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

1 of 62 20/11/2013 0:10

Page 2: Akses Pixel

Tipe data bentukan di atas akan digunakan dalam potongan kode berikut:

Kode di atas mengasumsikan properti PixelFormat milik TBitmap bernilai pf24bit yang artinya Bitmapmenyimpan informasi gambar sebanyak 3 byte per titik (r, g, dan b). Jika bitmap yang dimiliki tidakdalam format 24 bit maka ubah saja ke dalam format 24 bit dengan kode berikut (sedikit maksa).

Filed under: delphi, programming | 138 Komentar138 Responses to “mengakses pixel”

Pengumpan untuk Entri ini Trackback Address1 mia on 5 April 2007 berkata:Halow Peb! pa kabar?sip sip! sering2 bagi cerita ke-gaibannya ;Dku link blognya yaa..

0

0

iRate This

Balas2 tris on 14 April 2007 berkata:mas…say amo tanya. klo pengen mendapatkan matriknya rgb dari gambar bagaimana caranya?truzditampilkan di stringgrid.coz aq masih bingung. trimakasih ya mas.

12345678910111213141516171819

procedure PutPixel(b:TBitmap; x, y:integer; rr, gg, bb : byte);var p : PArrRGB;

beginp := b.Scanline[y];{ 10 adalah baris/ordinat(y) pada Bitmap }with p[x] do beginr := rr;g := gg;b := bb;

end;end;

procedure GetPixel(b:TBitmap; x, y:integer; var r, g, b : Byte);var p : PArrRGB;

beginp := b.Scanline[y];r := p[x].r;g := p[x].g;b := p[x].b;

end;

123

var b : TBitmap;{ .. }b.PixelFormat := pf24bit;

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

2 of 62 20/11/2013 0:10

Page 3: Akses Pixel

1

0

iRate This

Balas3 pebbie on 16 April 2007 berkata:@tris: gambarnya di iterate aja

vari,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

iRate This

Balas4 qoy on 16 April 2007 berkata:klo untuk mengakses gambar dari web camera gimana ya caranya?

0

0

iRate This

Balas5 pebbie on 17 April 2007 berkata:untuk mengakses gambar dari Web Cam, saya pakai komponen DSPack dari progdigy.com di situada komponen TFrameGrabberada method untuk GetBitmap (cara halus)

cara kasarnya(tanpa pakai FrameGrabber tapi nyuri dari canvas TVideoWindow):

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

3 of 62 20/11/2013 0:10

Page 4: Akses Pixel

BitBlt(VideoWindow1.Canvas.Handle, 0, 0, VideoWindow1.Width,VideoWindow1.Height, MyBitmap.Canvas.Handle, 0, 0, pmSrcCopy);//klo ga salah loya.. coba cek di help Win32 SDK

1

0

iRate This

Balas6 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

iRate This

Balas7 pebbie on 17 April 2007 berkata:tris:lamanya mungkin karena dimasukkan ke dbgrid mas, perlu konversi dari bilangan bulat kestring karakter, trus update data di stringgrid. memang harus ke string grid ya mas? hehe.. kalomemang 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));//simpandi stringlist end; s1.Add(s2.CommaText);end;//sekarang dikopi ke string gridsg.RowCount := s1.Count+sg.FixedRows;for j := 0 to s1.Count-1 do //iterate row sg.Rows[sg.FixedRows+j].CommaText := s1[j];

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

4 of 62 20/11/2013 0:10

Page 5: Akses Pixel

semoga berhasil!

0

0

iRate This

Balas8 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:

vari,j,Ambang,gray:integer;PC,PH:Pbytearray;beginAmbang:=128;if(form4.Image.Picture.Bitmap.PixelFormat=pf24bit) thenfor i:=0 to form4.Image.Picture.Height-1 dobeginPC:=form4.Image.Picture.Bitmap.ScanLine[i];PH:=form4.Image.Picture.Bitmap.ScanLine[i];for j:=0 to form3.Image.Picture.Bitmap.Width-1 dobegingray:=round((PC[3*j]+PC[3*j+1]+PC[3*j+2])/3);if (gray

0

0

iRate This

Balas9 no skill on 27 April 2007 berkata:if (gray

0

0

iRate This

Balas10 no skill on 27 April 2007 berkata:

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

5 of 62 20/11/2013 0:10

Page 6: Akses Pixel

Jelasin gw dunk maksudnya?? Gw ga ngerti jalan pikirannya terutama di bagian scanline ama dibagian 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

iRate This

Balas11 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 menunjukrecord yang ukurannya 3 byte. sebenarnya sama, hanya saja.. gw nggak harus mengalikan dengan 3dan menambah 1 dan 2 untuk mengakses nilai green, dan red. soalnya udah dibungkus sama recordTWarnaRGB.

dengan asumsi urutan penyimpanan elemen pixel di windows adalah bgr bukan rgb maksudpernyataan di atas spt ini:

PC[3*j] itu untuk mengakses elemen blue yang ke-jPC[3*j+1] untuk mengakses elemen green yang ke-jPC[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 1byte, g 1 byte, r 1 byte). jadi ketika mengalikan j (iterator kolom) dengan 3, nilai yang ditunjuk olehPByteArray 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 offset dari pointer untuk merujuk ke elemen yang gw maksud(r, g, b) dan pengaksesan nilai masing-masing elemen sudah dibuat oleh compiler jadi tidak perlulagi susah-susah melakukan operasi aritmatika terhadap alamat pointer (pointer arithmetic)

0

0

iRate This

Balas12 $^$ on 6 Mei 2007 berkata:alow kk pebbie…aku mao nanya…gimana caranya dapetin nilai koordinat dari pixel? misalnya ada gambar kotakyang warnanya hitam smua…trus gimana caranya ngedapetin koordinat dari keempat sudut kotaktersebut???

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

6 of 62 20/11/2013 0:10

Page 7: Akses Pixel

Makasih banyak yah….

0

0

iRate This

Balas13 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 (ConnectedComponent Labelling), yaitu memberi label kepada komponen (pixel) yang berhubungan.keterhubungan antar pixel bisa merupakan terhubung ke 4 atau 8 tetangga. untuk melakukan CCLbisa secara iteratif atau memodifikasi dari algoritma fill (mis. floodfil).

cara yang lebih ringan untuk kasus mencari sudut adalah menelusuri pantai/tembok. jadiseolah-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 toheight ratio (kotak normal) atau axis-aligned bounding box (kotak yang terputar).

0

0

iRate This

Balas14 $^$ on 7 Mei 2007 berkata:saya ud pake cara tersebut…saya gunakan 3 buah scanline (atas,tengah,bawah)…..akan tetapi…masalahnya…ko fungsi scanlinenya error yah??? apa memang nga bisa digunakansecara 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 dobeginPA:=image1.picture.bitmap.scanline[i];PB:=image1.picture.bitmap.scanline[i+1];PC:=image1.picture.bitmap.scanline[i+2];…

Tapi kok error yah…delphi said that scanline was out of index ???Trims

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

7 of 62 20/11/2013 0:10

Page 8: Akses Pixel

0

0

iRate This

Balas15 $^$ on 7 Mei 2007 berkata:saya ud pake cara tersebut…saya gunakan 3 buah scanline (atas,tengah,bawah)…..akan tetapi…masalahnya…ko fungsi scanlinenya error yah??? apa memang nga bisa digunakansecara 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 dobeginPA:=image1.picture.bitmap.scanline[i];PT:=image1.picture.bitmap.scanline[i+1];PB:=image1.picture.bitmap.scanline[i+2];…

Tapi kok error yah…delphi said that scanline was out of index ???Trims

0

0

iRate This

Balas16 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] akanmenunjuk ke baris scanline yang tidak terdefinisi. karena nilai maksimum untuk mengakses scanlinehanya sampai Image1.Picture.Height-1. perlu ditambahkan analisa kasus untuk memeriksa apakahpengaksesan scanline valid atau tidak.

misal bisa saja nilai maksimum untuk iterasi for hanya sampai Image1.Picture.Height-3 atauditambahkan IF di dalam iterasi FOR

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

8 of 62 20/11/2013 0:10

Page 9: Akses Pixel

0

0

iRate This

Balas17 ayat on 10 Mei 2007 berkata:mas, saya mau tanya, kalo mau fliping horisontal & vertikal gambar (putar), sitaknya bagaimanayach…

tirima kasih nich sebelumnya

0

0

iRate This

Balas18 pebbie on 10 Mei 2007 berkata:untuk melakukan image flipping hanya diperlukan pertukaran pixel. misal untuk flip horizontalmaka pixel pada koordinat [i, j] ditukar dengan pixel pada koordinat [i, image.height-j] untuk ibernilai dari 0 sampai image.width-1 dan j dari 0 sampai image.height div 2. untuk vertical flip yangditukar adalah pixel yang berada di atas dengan di bawah garis tengah horizontal.

//vertical flipvar 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 flip yang ditukar adalah pixel kiri dengan kanan garis tengah vertikal.

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

9 of 62 20/11/2013 0:10

Page 10: Akses Pixel

//horizontal flipvar 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 dapatdilakukan secara maju (forward mapping) atau terbalik (backward mapping). pemetaan majumemetakan posisi tiap pixel di citra sumber ke posisi baru di citra tujuan dengan nilai pixel di posisibaru adalah nilai pixel di citra asal. fungsi yang digunakan adalah fungsi transformasi geometrikrotasi biasa. sedangkan untuk pemetaan mundur tiap posisi pixel di citra tujuan dipetakanmenggunakan fungsi invers rotasi sehingga menghasilkan posisi titik yang bersesuaian pada citraasal. nilai pixel yang digunakan tetap dari citra asal.

0

0

iRate This

Balas19 gal on 11 Mei 2007 berkata:Mas saya lagi coba mbuat program deteksi warna RGB pake TImageKenapa ya, warna yang terdeteksi Cuma bagian kiri dari image.???Misalnya image yang diambil bentuknya kotak berwarna merah bagian kiri 25% dan 75% berwarnabiru disebelah kanannya.Walaupun image yang dimbil 75% berwarna biru tapi nilai R selalu lebih tinggi, kenapa ya……???Listing programnya ginivarx,y: integer;R, G, B, jmlpixel : longint;

beginR := 0;G := 0;B := 0;jmlpixel := 0;

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

10 of 62 20/11/2013 0:10

Page 11: Akses Pixel

for x := 0 to image1.Height-1 dofor y := 0 to image1.Width-1 dobeginR := 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

iRate This

Balas20 pebbie on 11 Mei 2007 berkata:kebalik tuh

for x := 0 to image1.Height-1 dofor y := 0 to image1.Width-1 do

semestinya

for y := 0 to image1.Height-1 dofor x := 0 to image1.Width-1 do

0

0

iRate This

Balas21 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…

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

11 of 62 20/11/2013 0:10

Page 12: Akses Pixel

thanks…..

0

0

iRate This

Balas22 nuzul on 18 Mei 2007 berkata:Mohon bantuannya mas. Saya mau tanya nehh. Bagaimana caranya ya, menghitungtingkat/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 tersebutdaerah tersebut dihitamkan atau diberi isian. Terus terang ini yang saya tanyakan ini sangat erathubungannya dengan pembuatan aplikasi optical mark recognition (OMR) yang sepertinya tidakdisebarkan ke publik atau mungkin hanya sedikit orang yang mengetahuinya. Sebelumnya, terimakasih jika anda dapat membantu.

0

0

iRate This

Balas23 pebbie on 18 Mei 2007 berkata:itu disebut CCL (Connected Component Labeling)cara yang paling sederhana (menurut saya) pakai algoritma flood-fill (seperti pada Paint).

0

0

iRate This

Balas24 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 belumdimampatkan. Lalu kenapa image processing lebih sering menggunakan format BMP, apakah JPEGtidak bisa diolah secara langsung seperti halnya BMP? Truz JPEG itu masih ada informasi RGBnyaga 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 citraberformat 8bit yang berwarna-warni dengan kualitas gambar seperti 24bit?

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

12 of 62 20/11/2013 0:10

Page 13: Akses Pixel

Thank’s!

0

0

iRate This

Balas25 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 tidaktermampat yang artinya informasi pixel di simpan mentah-mentah. kalau JPEG itu format yangdisusun sebagai standar, sesuai kepanjangan JPEG (Joint Photographic Expert Group). dikompresidengan huffman coding, tapi sebelumnya ditransformasi ke domain spasial dengan transformasikosinus 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 warnake 256 warna.

semoga menjawab..

0

0

iRate This

Balas26 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 warnakeabu2an mgkn jd sekitar warna kuning/hijau, yg warna keputihan menjadi sekitar warna ungu .Dengan kata lain, gw pengen ngubah pallete color gambarnya.Thanks sebelumnya!

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

13 of 62 20/11/2013 0:10

Page 14: Akses Pixel

0

0

iRate This

Balas27 pebbie on 26 Mei 2007 berkata:hmm.. mungkin bisa dicoba dari model warna HSV/HSI (Hue-Saturation-Value) komponen Hue ituklo tidak salah pola warna pelangi.

jadi pertama bikin gradasi mejikuhibinu dari model HSV yang dikonversi ke RGB (H bervariasi0-255, S=255, V=127, CMIIW). lalu disampling dari gradasi mejikuhibinu tsb diasosiasikan dengantingkat 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 definisinyaend;end;//apply paletrgb ke palet bitmap greyscale

0

0

iRate This

Balas28 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

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

14 of 62 20/11/2013 0:10

Page 15: Akses Pixel

0

0

iRate This

Balas29 pebbie on 26 Mei 2007 berkata:hmm.. kalo nyoba untuk aplikasi sendiri sih belum pernah, tapi kalo nyoba aplikasi contoh darixampp pake php pernah.. sepertinya sama saja dengan mysql

kalau untuk penyimpanan cocok atau tidak saya pikir kembali ke tujuannya ya.. tergantung sqlite ituakan digunakan untuk apa dan citra yang disimpan ke basis data akan digunakan untuk apa..

yang pasti kalau ingin menyimpan citra dalam field di basis data biasanya disimpan sebagai BLOB.kalau untuk ukuran penyimpanan kembali lagi pada format pemampatan citra yang digunakansebelum disimpan sebagai BLOB. kalau tidak dimampatkan saya pikir percuma saja kecuali kalaumemang dibutuhkan pencarian terhadap koleksi basis data citra yang amat banyak (misal untukaplikasi GIS yang menyimpan data raster/citra yang diindeks secara spasial seperti pada googleearth.. ups, nyebut merk hehehe.. ).

kalau untuk mencari warna dominan dari suatu citra bisa saja menggunakan rata-rata dari seluruhpixel. 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, dihitungrata-rata dari tiap komponen pixel (misal rata-rata merah, hijau, dan biru untuk model ruang warnaRGB)..

0

0

iRate This

Balas30 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

iRate This

Balas31 $^$ on 30 Mei 2007 berkata:

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

15 of 62 20/11/2013 0:10

Page 16: Akses Pixel

Peb… mao nanya lagi niy…gimana si cara menentukan letak suatu pixel perspketif dari suatugambar???Maksudnya gini…..Misalnya dalam suatu gambar ada 3 benda….benda 1 letaknya paling depan, benda 2 dibelakangbenda 1, dan benda 3 letaknya dibelakang benda 2….Trus gimana mengakses pixel agar ketahuan letak ketiga benda tersebut klo benda 3 letaknyadibalakang benda 2, benda 2 letaknya diblakang benda 1, dan benda 1 letaknya paling depan….

Makasih banyak lho….

0

0

iRate This

Balas32 pebbie on 30 Mei 2007 berkata:@mia:coba lihat posting saya tentang jurus rata-rata untuk penghalusan citra. ada yang bertanyapada 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 keRGB 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 dipilihberdasarkan perhitungan jarak minimum.

@$^$: umm.. klo tanpa punya informasi priori tentang gambar yang diambil (blind) susah jugamenentukan letak pixel secara perspektif.. cara computer vision baru bisa menentukan objek secarageneral (bukan titik) dari analisis scene

0

0

iRate This

Balas33 $^$ on 31 Mei 2007 berkata:Waduh…jadi analisa secara global yah…bukan titik per titik dari pixel???Mungkin kk pebbie ada usul ato cara sederhananya gitu…buat tau yang mana letak benda dibelakang ma yg di depan???Thx

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

16 of 62 20/11/2013 0:10

Page 17: Akses Pixel

0

0

iRate This

Balas34 $^$ 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 secaralangsung tanpa save dulu ke image(bmp, jpeg, dll)…. misalnya kita mao grayscaling gambar previewwebcam secara langsung…. gimana yah???

Thx

0

0

iRate This

Balas35 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, topografi peta, x-ray melalui warna. Aku bingungbanget ni buat listing programnya, apalagi ada kalibrasinya juga tuh kayaknya. Bisa bantu akunggak???Kalau enggak keberatan pebbie bisa liat contoh kasusnya dih p://www.google.co.id –> search gambar:infrared image.Tolong ya Peb…

0

0

iRate This

Balas36 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, berapakahbesarnya dalam pixel, bagaimana relasinya ???Tenkyu Peb!

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

17 of 62 20/11/2013 0:10

Page 18: Akses Pixel

0

0

iRate This

Balas37 lyly on 3 Juli 2007 berkata:Assmo 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 delphinach… 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

iRate This

Balas38 nita on 3 Juli 2007 berkata:saya lg enyelesaikan TA g animasi gerak peluru dgn 2 dimensi dengan menggunakan delphi dansaya kesulitan utk penskalaan hasil grafik animasi ( saya diminta utk memperkecil hasil grafik jikamelewati area gambar dan memperbesar hasil grafik jika hasil tampak kecil di area gambar). Sayasudah pernah mencoba tetapi haol untuk sudut malah salah (Sudut 60 derajat sama besar dengansudut2 lainnya) jadi saya mohon bantuannya..trimakasih

0

0

iRate This

Balas39 pebbie on 4 Juli 2007 berkata:sebelumnya saya mohon maaf karena belum bisa menjawab pertanyaan teman-teman.. sayaakhir-akhir ini sedang sibuk menyelesaikan tugas akhir (sidang) dan ada beberapa proyek yangharus diselesaikan. saya coba jawab sedikit dulu ya.

@ lyly : algoritma jaringan syarafnya ingin diaplikasikan seperti apa ya? saya masih kurang mengertidengan judulnya penentuan morfologi. coba kirimkan ke e-mail saya saja. algoritma jaringan syaraftiruan yang pernah saya buat dengan delphi baru algoritma propagasi balik dan waktu itu sayagunakan untuk pengenalan wajah untuk tugas besar kuliah pembelajaran mesin.

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

18 of 62 20/11/2013 0:10

Page 19: Akses Pixel

@nita : proses yang nita maksud adalah pengendalian area pandang? kalau demikian, sebelumdigambar 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 carasederhananya. kirimnya ke alamat ini : peb_ra at yahoo dot com- sebenarnya bisa tanpa harus disimpan dulu ke dalam file, tetapi disimpan ke memori dalambentuk TBitmap sehingga dapat diakses. coba eksplorasi tentang ‘Grabber’ di salah satu programkecil pada contoh DSPack.

@bianca : maaf baru bisa berkomentar. saya sudah lihat contoh gambarnya, tapi saya agakkebingungan 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 ukuranpenskalaan resolusi citra (biasanya digunakan dalam pencetakan/penampilan pada monitor).resolusi dpi citra pada umumnya 72(untuk penampilan pada monitor). maksud dari 72 dpi adalah72 pixel pada citra dapat dianggap sebanding dengan ukuran 1 inchi.

Wassalam,Peb

0

0

iRate This

Balas40 $^$ on 4 Juli 2007 berkata:Saya uda coba pake DSP pack tapi ternyata tidak bisa akses 2 camera secara langsung…. jadi sayamemakai komponen lain….Mungkin nga yah misalnya di program saya sudah muncul preview dari webcam trus itu previewditampung di suatu tempat tapi tanpa menjadikannya dalam format gambar sehinnga langsungdapat diproses…. kk pebbie coba cek web ini yah h p://www.roborealm.com saya ingin membuatgambar 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

iRate This

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

19 of 62 20/11/2013 0:10

Page 20: Akses Pixel

Balas41 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 TAMPILANDOS pakai software apa ya? Saya ingin buat TAMPILAN dan cara kerjanya se-tipe dengan yangada di film2 (box translucent, layar background hitam, tulisan biasanya berwarna hijau menyala,bunyi tit ketika searching), ya kira2 kalo di film tuh adegannya saat seorang intelligen mencariburonan di komputer, atau seorang hacker menerobos password rahasia.Kalo tau software ato cara bwtnya toong kasi tau ya Peb.Thanks.

0

0

iRate This

Balas42 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);vari, j,posisi : integer;PC, PC2, PH : PByteArray;w1,w2 : real;beginw1 :=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) thenbeginfor i := 0 to im1.Picture.Bitmap.Height-1 dobeginPC := 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

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

20 of 62 20/11/2013 0:10

Page 21: Akses Pixel

PH[j] := Round(PC[j]*w1+PC2[j]*w2);posisi := i*j;progressbar5.Position := posisi;end;end;if (im1.Picture.Bitmap.PixelFormat = pf24bit) thenbeginfor i := 0 to im1.Picture.Bitmap.Height-1 dobeginPC := 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 dobeginPH[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

iRate This

Balas43 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 256warna (tabel 256 elemen RGB). untuk melakukan blending pada citra 256 warna berpalet, setelahnilai RGB hasil blending didapat, indeks pada palet yang memiliki nilai RGB ‘terdekat’ dengan RGBhasil blending yang digunakan sebagai nilai pixel hasil.

pf24bit : sebaiknya dilakukan clamping yaitu pembatasan nilai ke batas bawah dan batas atas untukmenghindari overflow. jadi kalau hasil rounding bernilai < 0 maka dibulatkan ke 0 sebaliknya jikahasil rounding > 255 maka dibulatkan ke 255.

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

21 of 62 20/11/2013 0:10

Page 22: Akses Pixel

0

0

iRate This

Balas44 lyly on 18 Juli 2007 berkata:gmana kbrx mas feb….saya dah kirimx email, tp gak nyambung2x…alamatx cocok ya [email protected]

0

0

iRate This

Balas45 Andy NR on 12 September 2007 berkata:Mau nanya nih, saya lagi buat image encoding dengan metode lsb. Pertama saya scanline imageuntuk dapetin RGBnya, kemudian nilai rgb saya ubah menjadi biner. dari biner tadi saya buat rgbbaru yang jadi warna hitam per 3 nilai biner.Saya menggunakan string grid. SG untuk menyimpan nilai rgb perpiksel, SG1 untuk menyimpannilai biner per piksel, SG3 untuk memcah nilai biner menjadi satu-satu. dan SG4 untuk mengambilnilai 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 caranyauntuk mempercepat dan meminimalisasi penggunaan memory. Soalnya saya kurang bisamenggunakan TStrings. berikut contoh program yang saya buat.

procedure TFEncode.GetRgb;var i,j:integer;marr : PRGBArray;beginLProses.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 rowmarr := Eimage.Picture.Bitmap.Scanline[j];for i := 0 to Eimage.Picture.Bitmap.Width-1 do begin //iterate columnsg.Cells[i,j]:=IntToStr(marr[i].Red)+’,ʹ+IntToStr(marr[i].Green)+’,ʹ+IntToStr(marr[i].Blue);end;end;end;

procedure TFEncode.GetBiner;

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

22 of 62 20/11/2013 0:10

Page 23: Akses Pixel

vari,j : integer;hasil : TStringList;t1,t2,t3,KATA, data:STRING;beginLProses.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 beginfor j:=0 to sg.ColCount-1 do beginkata:=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;vari,j,x,y,z : integer;hasil : TStringList;KATA,temp:STRING;beginLProses.Caption:=’Process : Encode The Binary’;LProses.Refresh;sg3.ColCount:=sg1.ColCount*24;sg3.RowCount:=sg1.RowCount;for i:=0 to sg1.RowCount-1 do beginy:=0;for j:=0 to sg1.ColCount-1 do beginkata:=sg1.Cells[j,i];hasil:=split(kata,’,ʹ);for z:=0 to 2 do begintemp:=hasil[z];for x:=0 to 7 do beginsg3.Cells[y,i]:=copy(temp,x+1,1);y:=y+1;end;end;end;end;end;

procedure TFEncode.NewRgb;vari,j,y : integer;t1,t2,t3,data:STRING;

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

23 of 62 20/11/2013 0:10

Page 24: Akses Pixel

beginLProses.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 beginy:=0;j:=0;repeatt1:=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;beginLProses.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 beginfor 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 pixel’s color datakata:=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);

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

24 of 62 20/11/2013 0:10

Page 25: Akses Pixel

HH.Caption:=in ostr(mbmp.Height);

mbmp.Free;end;

0

0

iRate This

Balas46 pebbie on 13 September 2007 berkata:

Tapi yang jadi masalah, waktunya terlalu lama dan sering out of memory. ada ide gimanacaranya 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

iRate This

Balas47 nonik on 16 September 2007 berkata:mas bagaimana cara mendapatkan nilai pixels biner atau monochrom

0

0

iRate This

Balas48 pebbie on 17 September 2007 berkata:@nonik: cara sederhananya (walau kurang efisien secara memori) dengan mengonversi bitmap dariformat pixel pf1bit atau pf4bit menjadi pf24bit. untuk bitmap yang format aslinya adalah biner makanilai pixel RGB yang ada hanya (0, 0 ,0) dan (255, 255, 255). untuk memeriksa cukup menggunakanproperti r (warna merah).

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

25 of 62 20/11/2013 0:10

Page 26: Akses Pixel

0

0

iRate This

Balas49 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 tauprogramnya yang lengkap!!! Makasih banyak ya mas Peb…tak doain semoga cepet selesai TA-nya

0

0

iRate This

Balas50 arfan on 17 September 2007 berkata:mas,boleh ga’ kalo saya nanya’ yang bukan masalah citra digital tapi masalah bahasa automata danteknik kompilasi karena saya bingung harus nanya ke siapa, yang saya tau cuma GAIBlog ini ja, dankayaknya 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

iRate This

Balas51 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 bmpke dalam baris(array) dengan metode zig-zag misalnya.matriks 4 x 423 10 3 19 7 2 08 1 0 04 1 0 0

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 tapidengan metode berurutan yaitu baris1 lanjut baris selanjutnya.

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

26 of 62 20/11/2013 0:10

Page 27: Akses Pixel

gimana mas peb ya kalo dengan metode zig-zag tersebut buat ubah nilai pixel ke baris denganmetode zig-zag……mohon bantuannya mas peb..

unit UnitBacaImage;interfaceuses Unit1,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, ComCtrls, Bu ons, StdCtrls, ExtDlgs;

Function BacaImage(x :Timage): Pmatrik;implementationFunction BacaImage(x :Timage): Pmatrik;varh,w,i,j : integer;grey : PMatrik;PH byteArray;beginh := x.Picture.Height;w := x.Picture.Width;setlength(grey,h,w);for i:= 0 to h – 1 dobeginPH := x.Picture.Bitmap.ScanLine[i];for j:= 0 to w – 1 dobegingrey[i,j]:= PH[j];End;End;BacaImage := Grey;end;end.

unit UnitMatrikJadiBaris;interfaceuses Unit1,Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls,ComCtrls,Bu ons,StdCtrls,ExtDlgs;

function matrikjadibaris(B : PMatrik) : PArray;implementationfunction matrikjadibaris(B : PMatrik) : PArray;vari, j, baris, kolom : integer;indeks : integer;deret : PArray;beginsetlength(deret, length(B)*length(B[0]));baris := length(B);kolom := length(B[0]);indeks := 0;for i := 0 to baris – 1 dobeginfor j := 0 to kolom – 1 dobeginderet[indeks] := B[i][j];

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

27 of 62 20/11/2013 0:10

Page 28: Akses Pixel

inc(indeks);end;end;matrikjadibaris := deret;end;end.

procedure TForm1.BitBtnWatermarkingClick(Sender: TObject);varhasilpixel : PArray;k : integer;ww : textfile;begindata1 := BacaImage(formcitra.Image1);barispixel := matrikjadibaris(data1);end;end.

mungkin ini saja mas pebbie…mohon maaf, terima kasih….

0

0

iRate This

Balas52 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 warnetnih.. baru bisa online lagi..

0

0

iRate This

Balas53 yadi on 25 September 2007 berkata:asswrwbMas pebbie..saya lagi sedang ngerjain juga…kebetulan dapet algoritma di matlabnya…untuk scan matriks zigzag(M x N)..dan udah saya terjemahanin ke delphinya…cuman masih ada hangnya aja…setelah di running…saya akan coba terus mas pebbie…

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

28 of 62 20/11/2013 0:10

Page 29: Akses Pixel

doain ya mas pebbie….terima kasih…jadi malu ni….wasswrwb…

0

0

iRate This

Balas54 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..aminn…ya rabbal ‘alamin.

0

0

iRate This

Balas55 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

iRate This

Balas56 yadi on 17 Januari 2008 berkata:Mau nanya ni…Saya ubah gambar RGB ke grayscale / keabuan pakai metode YIQ, sehinggan natinya yang diambiladalah komponen Y saja untuk gambar keabuannya menurut teori yang ada, formulanya dapet darimatlab.kalo di buku pengolahan citra pake delphi (pak ahmad balzah ada) cuman harus pake metode YIQiniTapi kenapa hasil konversinya itu bukan seperti gambar grayscale melainkan seperti gambar klisePhoto( gambar negatif album photo)

Saya deklarasikan tipe

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

29 of 62 20/11/2013 0:10

Page 30: Akses Pixel

typePMatrik = array of array of real;DWarna = recordbiru : PMatrik;hijau : PMatrik;merah : PMatrik;end;YIQ = recordY : PMatrik;I : PMatrik;Q : PMatrik;end;publicpixelRGB : Dwarna;keabuan : YIQ;pixelkeabuan,pixelkeabuan2 : PMatrik;

Fungsinya seperti ini :function RGBtoYIQ(X : DWarna): YIQ;vary : YIQ;h,w,j,i : integer;beginh := 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 dofor j:= 0 to w – 1 dobeginy.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 RGBprocedure TFormUtama.Bu on6Click(Sender: TObject);varfcrgb : string ;beginif (openpicturedialog2.Execute) thenbeginif (form2 = nil ) thenapplication.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

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

30 of 62 20/11/2013 0:10

Page 31: Akses Pixel

(form2.Image1.Picture.Bitmap.PixelFormat) ofpf1bit : fcrgb := ‘biner’;pf8bit : fcrgb := ‘keabuan’;pf24bit : fcrgb := ‘true color’;end;end;end;

kemudian lakukan konversi RGB ke grayscaleprocedure TFormUtama.Bu on7Click(Sender: TObject);beginpixelRGB := BacaImageRGB(form2.Image1);keabuan := RGBtoYIQ(pixelRGB);pixelkeabuan2 := keabuan.Y;edit4.Text := in ostr(length(keabuan.I));

if (form3 = nil) thenapplication.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;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls;typelogpal = recordlpal : Tlogpale e;entry : array [0..255] of TPale eEntry;end;typeTForm3 = class(TForm)Image1: TImage;procedure FormCreate(Sender: TObject);procedure FormShow(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm3: TForm3;paletkeabuan : logpal;implementationusesunitutama;{$R *.dfm}

Procedure GambarIDwt(y:PMatrik;x:Timage);var

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

31 of 62 20/11/2013 0:10

Page 32: Akses Pixel

PH : PbyteArray;bitmap2 :Tbitmap;i,j,p :integer;beginx.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 dobeginPH := x.Picture.Bitmap.ScanLine[i];for j:= 0 to length(y[0])- 1 dobeginp := round(y[i,j]);PH[j]:= p;end;end;end;

procedure TForm3.FormCreate(Sender: TObject);vari :integer;beginpaletkeabuan.lpal.palVersion := $300;paletkeabuan.lpal.palNumEntries := 256;for i := 0 to 255 dobeginpaletkeabuan.entry[i].peRed := i;paletkeabuan.entry[i].peGreen := i;paletkeabuan.entry[i].peBlue := i;end;end;

procedure TForm3.FormShow(Sender: TObject);beginGambarIDwt(formutama.keabuan.Y,Image1);end;end.

0

0

iRate This

Balas57 slack_v9 on 30 Januari 2008 berkata:

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

32 of 62 20/11/2013 0:10

Page 33: Akses 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

iRate This

Balas58 ne2k on 2 Februari 2008 berkata:bantu aku ya…. aku mau bikn program delphi untuk konversi bitmap semua bit depth ke format24bit. ntar bitmapnya mau aku break trus direkonstruksi lg by pixels RGB nya.help me ya… makasih

0

0

iRate This

Balas59 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

iRate This

Balas60 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 codenyaya mas.2. bagaimana cara mendeteksi posisi pointer dalam gambar?? jadi ketika pointer menunjukkan satutitik di gambar, maka komponen x dan y-nya bisa diketahui.3. dari gambar topografi, untuk menentukan ketinggian, apa harus di define satu2 warna danketinggiannya???Makasi mas……….

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

33 of 62 20/11/2013 0:10

Page 34: Akses Pixel

0

0

iRate This

Balas61 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 aja3. kalau warnanya ada dalam fungsi tertentu (mis. greyscale) tinggal ditentukan aja berapa tinggipada intensitas pixel minimum dan maksimum

0

0

iRate This

Balas62 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

iRate This

Balas63 pebbie on 26 Mei 2008 berkata:@CUNGKRING: “image registration”

0

0

iRate This

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

34 of 62 20/11/2013 0:10

Page 35: Akses Pixel

Balas64 cungkring on 27 Mei 2008 berkata:sayah masih bingung neeh kalooo penggabungan images bisa di gambarkan dengan matrikstransformasi refleksi gak.image mosaik dan image split algoritmanya kaya gimana bisa bantu in mencarikannya ? web nyaapaan

0

0

iRate This

Balas65 lukman on 18 Juni 2008 berkata:maaf mas kl pertanyaanya membingungkan yang no 2. ibu maksudnya. kita punya satu titik diimage, kemudian kita proses menjadi data di dalam tabel. Gmana ya mas, cranya. terima kasihseblumnya.

0

0

iRate This

Balas66 pebbie on 18 Juni 2008 berkata:@lukman: saya masih tidak mengerti dengan pertanyaannya. maksud proses itu apa dan hasilproses (data di dalam tabel) itu seperti apa.

0

0

iRate This

Balas67 udhin on 10 Juli 2008 berkata:Mas, mau nanya nih?Gimana sih caranya ngitung panjang dan lebar dari suatu gambar sehingga di dapatkan ukurancenti meter bukan pixel?Tolong mas yaa…!Makasih.

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

35 of 62 20/11/2013 0:10

Page 36: Akses Pixel

0

0

iRate This

Balas68 muna on 8 Agustus 2008 berkata:Mas….mau nanya. aq lagi bikin kompresi citra bitmap pake huffman coding.Aq bingung nyimpen hasil code binernya untuk nanti proses dekompresi.Apakah disimpan dalam matrik atau gimana tolong ya mas….thanks

0

0

iRate This

Balas69 seta on 16 Juli 2010 berkata:boleh ga share ma aku mengenai kompresi citra huffman??

0

0

iRate This

Balas70 pebbie on 8 Agustus 2008 berkata:@muna: hasil dekompresi bisa disimpan sementara ke dalam matriks sebelum ditransfer ke bitmapatau file

0

0

iRate This

Balas71 seta on 16 Juli 2010 berkata:mas muup mw tanya ne….untuk kompresi citra dengan huffman itu langkah penyusunankoding yang tepat tu kek gimana mas? tengs.

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

36 of 62 20/11/2013 0:10

Page 37: Akses Pixel

0

0

iRate This

Balas72 muna on 15 Agustus 2008 berkata:halo…mas mau nanya lagi nih. nilai2 piksel kalo aq copy ke canvas image kok ada warna merah itukenapa ya?

Aq pernah nyoba nilai piksel gambar aku taruh di stringGrid, terus aq copy lagi ke canvas . Kok adawarna merahnya. makasih sebelunya

0

0

iRate This

Balas73 pebbie on 15 Agustus 2008 berkata:@muna: kemungkinan nilai yang anda masukkan bernilai 0-255 sedangkan format pixel (propertiPixelFormat) dari bitmap image (Image.Picture.Bitmap) bukan pf8bit (pf24bit atau pf32bit).sehingga yang anda atur hanya nilai merahnya saja. *mungkin?*

0

0

iRate This

Balas74 muna on 16 Agustus 2008 berkata:mas,makasih infonya. Format pixel yang saya masukkan memang 8bit ( grayscale), tetapi di kanvaskok tetep merah. tolong ya mas ya?………makasih.

0

0

iRate This

Balas75 pebbie on 16 Agustus 2008 berkata:

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

37 of 62 20/11/2013 0:10

Page 38: Akses Pixel

format pixel 8 bit bukan berarti grayscale (ini kesalahpahaman yang sering terjadi). format pixel 8bit itu maksudnya setiap pixel menyimpan informasi indeks ke tabel Palet yang elemennya berisiinformasi RGB. Bitmap dengan format pixel 8 bit mampu menggunakan model warna RGB tetapibanyaknya warna (kombinasi RGB) maksimum yang dapat ditampilkan hanya 256 warna saja.

0

0

iRate This

Balas76 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) thenbeginfor y := 0 to image1.Picture.Height-1 dobeginPimg := image1.Picture.Bitmap.ScanLine[y];for x := 0 to image1.Picture.Width-1 dobeginST.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 dofor i:=0 to image2.Width-1 doform1.Image2.Canvas.Pixels[i,j]:= strtoint( st.cells[i,j]);

Hasilnya gambarnya ada merah2nya n setelah aq liat nilai pikselnya kok lain…..Nilainya sekitar31-an…..

Terus yang bener gimana mas biar nilai dari stringGrid jadi nilai piksel di image itu?

Thanks bgt ya mas………..Mohon responnya

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

38 of 62 20/11/2013 0:10

Page 39: Akses Pixel

0

0

iRate This

Balas77 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

iRate This

Balas78 muna on 17 Agustus 2008 berkata:muna lagi nih mas, yang kmarin tak coba sdh bisa, tapi nilai pixel nya jadi berubah ya? makasihbuuuanget ya. Kalau gambarnya 8 bit yang bukan grayscale (RGB) menuliskan kanvasnya gimana?thanks ya……di tunggu.

0

0

iRate This

Balas79 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

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

39 of 62 20/11/2013 0:10

Page 40: Akses Pixel

0

0

iRate This

Balas80 pebbie on 26 Agustus 2008 berkata:kalau untuk citra 8 bit, pakai ini (komponen TBitmap)procedure putpixel(bmp: TBitmap; x,y:integer; idxwarna:byte);varp : PByteArray;beginp := bmp.Scanline[ y ]; { asumsi bmp.PixelFormat = pf8bit; }p[ x ] := idxwarna;end;

0

0

iRate This

Balas81 mei on 25 Oktober 2008 berkata:bie mau nanya..saya baru belajar g image masih pemula.1. misalnya ada citra ukuran 30×30 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 nilaimatriksnya?makasih jawabannya,..

0

0

iRate This

Balas82 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 untuk2 pixel. oleh sebab itu nilai yang mungkin adalah sebanyak 256 kombinasi warna. 256 kombinasi

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

40 of 62 20/11/2013 0:10

Page 41: Akses Pixel

warna ini menggunakan tabel look-up yang berisi nilai RGB. jadi belum tentu pixel bernilai 0 ituhitam (R=0, G=0, B=0) tetapi tergantung pada nilai RGB di tabel palet indeks ke 0 (bisa saja justru ditabel 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 sudahmengalokasikan nilai RGB pada tiap pixel/titiknya jadi tidak memerlukan tabel palet. yang perludiperhatikan adalah bagaimana nilai RGB dikodekan ke variabel berukuran 16 bit. kemungkinanyang umum ada 2 yaitu tiap komponen warna mendapat jatah 5 bit sehingga 1 bit sisanya tidakterpakai. 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 mendapatjatah 1 byte. kemungkinan warna yang dihasilkan adalah 2 milyar warna.

- citra 32 bit, tiap komponen tetap dialokasikan sebagai 1 byte namun 1 byte terakhir kalaudigunakan 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 menggunakanPixels dan 3 fungsi Get[R,G,B]Value(dword)

3. tidak harus, tergantung nilai apa yang ingin didapat. kalau memang informasi yang diinginkanadalah intensitas (luminansi) maka betul, harus dikonversi atau tiap pixel dimasukkan ke fungsipenghitung nilai intensitas luminansinya. kalau informasi yang diinginkan adalah spektrum warna(hue) maka lain lagi.

0

0

iRate This

Balas83 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 ndangerti gmn untuk source coding algoritmanya pada delphi, bs bantu mas?Thanks ya…

0

0

iRate This

Balas84 Agnes on 29 Oktober 2008 berkata:Mas Feb, untuk ekstrasi audio bisa pake metode LPC (linier predictive Coding) kan? trus untukaplikasinya bisa pake delphi? ada codingnya nda? Kalau untuk transformasinya sinyal pake apa?thanks banget……….

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

41 of 62 20/11/2013 0:10

Page 42: Akses Pixel

0

0

iRate This

Balas85 pebbie on 31 Oktober 2008 berkata:@Yohanes:sabar ya, baru masuk antrian draft posting. mudah-mudahan minggu depan sudah bisaditampilkan 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

iRate This

Balas86 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

iRate This

Balas87 pebbie on 1 November 2008 berkata:@derim: akses menggunakan Pixels lebih lambat dan menghasilkan TColor, untuk mendapatkannilai komponen R,G,dan B-nya perlu menggunakan fungsi lain (misal GetRValue(c)) sedangkankalau menggunakan scanline yang dihasilkan adalah pointer ke memori yang menyimpan masing-masing pixel dalam representasi yang bergantung pada nilai PixelFormat. untuk kasus di atas sayaasumsikan PixelFormat-nya bernilai pf24bit. jadinya, tiap pixel disimpan sebagai 3 byte. maksud yitu adalah baris (nilai yang valid adalah 0 sampai Tinggi Bitmap atau banyaknya baris dikurangi 1).baris pertama (y=0) adalah baris yang paling atas.

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

42 of 62 20/11/2013 0:10

Page 43: Akses Pixel

0

0

iRate This

Balas88 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

iRate This

Balas89 Princess on 14 November 2008 berkata:hai..mas… ato siap yang bisa bantu aq , cara mendeteksi wajah pada hasil pengambilan gambar dariwebcam 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 caraselanjutnya agar kita dapat meng akses wajh orang pada gamabr yang bergerak, bukan gambarstatis kayak photo, tapi hasil gambar pada pengambilan dari web cam,

0

0

iRate This

Balas90 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 1aplikasi aq taruh 1 bh image,1 buah bu on yg captionnya “persegi” dgn sintaksimage1.canvas.rectangle(100,200,400,600),lalu ada 1 bh bu on yg captionnya “New/Baru”,,nah kktahu sintaks untuk tombol “baru”,,tolong ya k..

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

43 of 62 20/11/2013 0:10

Page 44: Akses Pixel

2. dalam procedure floodfill,ada parameter Tfillstyle,,untuk mengisi Tfillstyle contohnya adalahfsborder,selain fsborder nasih ada yg lain ?? Tolong buat daftarnya yah.. soalnya pada turbo pascalfillstyle nya agak beda dgn pada delphi.

3. kk tahu caranya menggerakkan citra pada image delphi sehingga bisa di simpan dengan ekstensiGIF..? klo bisa dengan cintohnya ya

0

0

iRate This

Balas91 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 caranyasupaya 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 berbedadgn di pascal, ProcedureARC(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 ygmemiliki nilai integer..aq harus kasih maxvaluenya berapa untuk x3,y3,x4,y4..jelaskan dong x3,y3dan x4,y4 supaya misalnya arc yg ingin dibentuk bisa jadi sesuai dgn yg diinginkan…

makasih banyak ya atas jawabannya……….

0

0

iRate This

Balas92 pebbie on 23 November 2008 berkata:@pangeran :1. clear canvas : pakai saja FillRect seperti berikutwith image1.canvas do beginBrush.Style := bsSolid;Brush.Color := clWhite; { warna latar belakang, misal putih }Pen.Style := psClear;FillRect(Image1.ClientRect);Pen.Style := psSolid;

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

44 of 62 20/11/2013 0:10

Page 45: Akses Pixel

end;

2. dari definisi floodFill sbbprocedure FloodFill(X, Y: Integer; Col: TColor; FillStyle: TFillStyle);parameter FillStyle ada 2 yaitu:– fsBorder : ini mirip boundary fill, arsir akan dilakukan sampai ketemu pixel berwarna Col (sebagaibatas)– 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 ingdisplay monitor.

5. untuk menggambar (rectangle, elips) tidak terpengaruh oleh properti PixelFormat. gunakan sajaprosedur gambar dari TCanvas

6. bit depth (pixel format) akan mempengaruhi sebanyak apa kombinasi warna yang bisa disimpandalam image. misal untuk pf8bit maka kombinasi warna yang mungkin hanya sebanyak 28 atau 256warna 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 bitdapat menyimpan kombinasi 65 ribu warna. khusus untuk 32 bit, banyaknya warna yang bisadisimpan sama dengan 24 bit, sedangkan 8 bit sisanya biasanya tidak digunakan atau digunakanuntuk 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 yangdigambar. misal dari titik tengah elips (misal x0y0) ditarik garis ke x3y3 dan x4y4 maka garis elipsyang digambar hanyalah dari titik perpotongan garis elips dengan garis x0y0-x3y3 dan perpotongangaris elips dengan garis x0y0-x4y4 melawan arah gerakan jarum jam.

0

0

iRate This

Balas93 teamburger on 25 November 2008 berkata:Mas Pebbie, maaf kalo mau ngerepoti ….. (udah stress banget)saya coba2 mau ganggu image hasil steganografi,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, pleaseOh ya … saya ngeload gambarnya pake openpicture dialog.tolong mas ya, rencananya saya mau ubah nilai RGB tersebut dengan nilai yang lain (seakan2 image

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

45 of 62 20/11/2013 0:10

Page 46: Akses Pixel

yang dikirim terkena noise), sehingga saat dikembalikan ke image lagi apakah data yangtersembunyi didalamnya masih bisa dipertahankan …

0

0

iRate This

Balas94 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 getpixeldan 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

iRate This

Balas95 ar an on 27 November 2008 berkata:misal saya punya image diformbagaimana caranya agam image tersebut memutar gambar 90 drjt, 180 drjat dgn menggunakan pixeldan gimana caranya memutar vertikal dan horizontaltks….

0

0

iRate This

Balas96 Pangeran on 28 November 2008 berkata:klo buat warna background pada image aq menggunakan akses pixel dgn colordialogsehingga sintaksnya canvas.pixel[i,j]:=colordialog1.filename,,dgn i,j adalah image width dan imageheight..kk bisa kasih sintaks dgn scanline,untukpemilihan warnanya aq menggunakan colordialog.

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

46 of 62 20/11/2013 0:10

Page 47: Akses Pixel

0

0

iRate This

Balas97 Pangeran on 30 November 2008 berkata:sebenarnya aq lgi susun skripsi,bisa minta pendapat k pebbie..waktu kuliah grafika komputer kamimenggunakan pascal..sekarang aq coba buat seperti itu utk menampilakan citra di delphi..kira-kirajudul apa yang pa bwt skripsis..soalnya aq bingung menyusun kata-kata yg pas bwt menentukanjudul

0

0

iRate This

Balas98 pangeran on 8 Desember 2008 berkata:sebenarnya aq lgi susun skripsi,bisa minta pendapat k pebbie..waktu kuliah grafika komputer kamimenggunakan pascal..sekarang aq coba buat seperti itu utk menampilakan citra di delphi..kira-kirajudul apa yang pas bwt skripsis..soalnya aq bingung menyusun kata-kata yg pas bwt menentukanjudul..

0

0

iRate This

Balas99 Yohanes on 11 Desember 2008 berkata:Mas Pebbie, gmn tuh pembahasan dan implementasi JST algoritma backpropagation dengandelphi?He…menagih janji nih,^_^Sibuk ya Mas…

0

0

iRate This

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

47 of 62 20/11/2013 0:10

Page 48: Akses Pixel

Balas100 echy on 18 Januari 2009 berkata:mas,sorry neh mo nanya tentang J2ME,ada ga’method untuk mengambil pixel di J2ME?thanks

0

0

iRate This

Balas101 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 pixel = imageData[Y * inputImage.getWidth() + X];int r = 0xFF & (pixel >> 16);int g = 0xFF & (pixel >> 8);int b = 0xFF & pixel;

0

0

iRate This

Balas102 Pangeran on 17 Februari 2009 berkata:k pebie kenapa nama komponen di delphi awalannya selalu huruf ‘T’ ? sepertTcanvas,Tbu on,Tform dlllApa artinya atau singkatannya..Makasih ya

0

0

iRate This

Balas103 pebbie on 17 Februari 2009 berkata:

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

48 of 62 20/11/2013 0:10

Page 49: Akses 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 ‘T’nyasaja (contoh praktisnya).

0

0

iRate This

Balas104 pangeran on 21 Februari 2009 berkata:ka misalnya klo untuk objek bitmap tipe datanya Tbitmap, klo giv ..?makasih

0

0

iRate This

Balas105 pangeran on 25 Februari 2009 berkata:ka klo pada objek edit kita bisa melakukan setfocus dgn menekan tombol enter pada keyboardmisalnya dgn perintah pada event onkeypressif key =#13 then edit2.setfocus;kenapa pada object spinedit tidak bisa ,,kk tau caranya…?

0

0

iRate This

Balas106 Adnan on 11 Maret 2009 berkata:Salam kenal pak Peb Ruswono AryanNama saya adnan, alumni teknologi pascapanen IPB. Pertama berkenalan dengan citra digital saatambil kuliah matakuliah ini. Semenjak itu bisa dibilang saya jatuh cinta dengan ilmu pengolahancitra digital ini, hanya sayang saya tidak mengerti banyak tentang bahasa pemrograman karena latarbelakang bukan ilmu komputer tapi pertanian.

Di bidang pascapanen, Image process sangat berguna untuk inspeksi atau sortasi hasil panen, ataumengamati perubahan warna pada hasil panen selama penyimpanan. Dengan citra digital ini, tentupengamatan 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 sekarangharganya lebih mahal lagi). sedangkan dengan ilmu image process cukup bermodalkan program

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

49 of 62 20/11/2013 0:10

Page 50: Akses 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 menunjanguntuk penelitian pascapanen bisa dibilang tidak ada disini. jadi yang bisa saya gunakan untuk toolpenelitian pascapanen adalah image process ini. Saya ke pulau yang besarnya 3 kali pulau jawa inihanya bermodal laptop, web cam dan buku delphi.Saya minta bantuan pak peb. Misalkan saya ingin menampilkan warna merah (kalau sudah bisaketemu nanti juga bisa untuk mencari nilai D, B dan HSI pastinya). Dengan algoritma yang miripwaktu saya buat menggunakan VB, ternyata tidak bisa diterapkan di delphi. Dari beberapa literaturyang saya dapat, saya membuat seperti ini kode delphinya:

procedure TFormUtama.Bu on1Click(Sender: TObject);vari, j, merah : integer;R, total : extended;tempR: byte;P : pbytearray;

begintotal := 0;tempR := 0;R := 0;

for i:= 0 to (formhasil.image.picture.height-1) dobeginP := formhasil.image.picture.bitmap.scanline [i];for j:= 0 to (formhasil.image.picture.width-1) dobegintempR := 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 darigambar yang telah diketahui nilai R nya sebelumnya, yang ditampilkan pada Tedit nilainya ngawur.Saya mohon bantuan pak peb untuk memberitahu saya bagaimana seharusnya kode tersebutditulis. Terimakasih banyak sebelumnya

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

50 of 62 20/11/2013 0:10

Page 51: Akses Pixel

0

0

iRate This

Balas107 pebbie on 11 Maret 2009 berkata:mungkin maksudnya nilai tempR tidak pernah digunakan itu bukan yang di dalam loop, tetapi yangdi luar loop (inisialisasi tempR dengan 0 padahal di dalam loop nilai tempR selalu diperbaharui)

procedure TFormUtama.Button1Click( Sender: TObject );vari, j, merah : integer;R : extended;total : integer;tempR : byte;P : pbytearray;

begintotal := 0;R := 0;

for i := 0 to ( formhasil.image.picture.height - 1 ) do beginP := formhasil.image.picture.bitmap.scanline[i];for j := 0 to ( formhasil.image.picture.width - 1 ) do begintempR := P[3 * j + 2];R := R + tempR;total := total + 1;end;merah := round( R / total );edit1.text := inttostr( merah );end;end;

0

0

iRate This

Balas108 adnan on 13 Maret 2009 berkata:tanks bro, thats so helfull. terimakasih koreksiannya ya

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

51 of 62 20/11/2013 0:10

Page 52: Akses Pixel

0

0

iRate This

Balas109 putriE on 17 Maret 2009 berkata:KK tau di halaman mana komponen TBaseReport berada..? Cara menginstalnya pada delphi 7bagaimana caranya..? Thx atas jwbnya

0

0

iRate This

Balas110 may on 21 Maret 2009 berkata:hai…mau nanya nih kak tau cara menghapus salah1 object pada kanvas image sehingga mirip sepertifasilitas erase di paint bawaan windows

0

0

iRate This

Balas111 pebbie on 21 Maret 2009 berkata:@may:menghapus pada paint sama dengan menggambar dengan warna arsir yang sama denganwarna kanvas (mis. putih).

0

0

iRate This

Balas112 may on 25 Maret 2009 berkata:

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

52 of 62 20/11/2013 0:10

Page 53: Akses Pixel

thx atas jawabannya,,mau nanya lagi nih,,dosen aq suruh buat scalling gambar,misalnya seperti diPaint itu , objek grafis yang ditarik kesamping dgn mouse akan membesar,jika di tarik kembali ke kiriakan kembali seperti semula,,kak bisa bantu sintaxnya dengan menggunakan delphi..?

0

0

iRate This

Balas113 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 kevideo avi ga bisa.2. capture image real time with webcam per satuan waktu, pakenya grabber ma tscap32. gimanacaranya ya?thx b4.. ranee..

0

0

iRate This

Balas114 paul on 9 Mei 2009 berkata:bantuin aq dunk aq mau mendeteksi bangun datar, pakai metode chain code, aq bingun mengenalipolanya, terus algoritma sama programnya aq juga belum begitu jelas.bantuin ya…thks bgt…

0

0

iRate This

Balas115 adhye on 10 Juni 2009 berkata:mas…saya mau tanya,bagaimana cara membagi nilai pixel pada image dengan menggunakan TeknikMultiple Description Coding?

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

53 of 62 20/11/2013 0:10

Page 54: Akses Pixel

0

0

iRate This

Balas116 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

iRate This

Balas117 Benk on 7 Agustus 2009 berkata:mas bisa ngasi contoh sintak zoom image menggunakan delphi egak?Pleaze..

0

0

iRate This

Balas118 Daryl on 11 Oktober 2009 berkata:Peb gw mau tanya neh … kalo gue mau buat face recognition … untuk di delphinya apa harus pakeregion ?? oiaa punya source code wavelet di delphi nda’ butuh bgt neh … makasii peb

0

0

iRate This

Balas119 rera on 14 Oktober 2009 berkata:terimakasih

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

54 of 62 20/11/2013 0:10

Page 55: Akses Pixel

0

0

iRate This

Balas120 yolan on 11 Januari 2010 berkata:mas…sta mw tx program pencerminan donk…

0

0

iRate This

Balas121 Rendy on 29 Maret 2010 berkata:Mas Pebbie, aku mau tanya nie mengenai Refleksi / pencerminan dengan menggunakan VB 6source code nya bgmn, aku bingung megenai tgs itu yg kurang..mohon bantuannya mas.

Pencerminan/RefleksiGambar 1 dicerminkan -> Menjadi Horizontal

Gambar 1 dicerminkan -> Menjadi Vertikal

Thanks.

0

0

iRate This

Balas122 Meisya on 1 Mei 2010 berkata:mas,, mw tanya,,gimana caranya mendeteksi kemiringan image, merotasi image dengan sudut bebas,, asumsi gambartidak tegak lurus,, dibuat jadi tegak lurus,,*ingin implementasi utk citra hasil scan,, dibaca kemiringanny,, trus diluruskan

mohon bantuannya,, makasi

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

55 of 62 20/11/2013 0:10

Page 56: Akses Pixel

1

0

iRate This

Balas123 angel on 25 Juli 2010 berkata:mas mw nanya soal citra huffman ne…gimana cara misah intensitas warnanya…RGBnya? kalo gasalah pertama harus dipisah dulu kan intensitas warnaya…setelah tu dikompres satu satu tiapintensitas warna tsb? mksh

0

0

iRate This

Balas124 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 pesanpesan:=memoTulisPesan.Lines.Text;BinerPesan:=”;PanjangText:=length(memoTulisPesan.Lines.Text);for i:=1 to PanjangText dobeginBinerPesan:=BinerPesan+biner(ord(pesan[i]));end;n:=1;for j:=1 to ImageFile.Height-1 dobeginfor i:=0 to ImageFile.width-1 dobegininc(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];

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

56 of 62 20/11/2013 0:10

Page 57: Akses 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) thenbreak;end;if n>length(BinerPesan) thenbreak;end;

0

0

iRate This

Balas125 qeera on 30 Desember 2010 berkata:salam kenal, mas peb

0

0

iRate This

Balas126 qeera on 30 Desember 2010 berkata:salam kenal, mas peb saya mau tnya? saya sudah membuat aplikasi kompresi citra dengan delphimenggunakan metode singular value decomposition dari beberapa literatur yang saya bacaseharusnya image hasil kompresi jauh lebih kecil ukurannya dibanding dgn citra asli nah yang sayabingung kok hasil yang saya buat justru lebih besar ukuran filenya. saya sudah cek teori SVDnyasudah benar. menurut mas peb gmn?terima kasih sebelumnya.

0

0

iRate This

Balas127 Ri on 25 Januari 2011 berkata:

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

57 of 62 20/11/2013 0:10

Page 58: Akses Pixel

Salam kenal mas. Saya masih newbie, mau tanya cara mengubah matriks ke bentuk gambar gimanaya?

0

0

iRate This

Balas128 Dwiky on 28 Mei 2011 berkata:ass…salam 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

iRate This

Balas129 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 = sbrSpringFor i = 0 To frmPicture.imgload.ScaleHeight – 1For J = 0 To frmPicture.imgload.ScaleWidth – 1PixLong = GetPixel(frmPicture.imgload.HDC, J, i)RGBcolors = GetRGB(PixLong)r = 255 – RGBcolors.redg = 255 – RGBcolors.greenb = 255 – RGBcolors.blueSetPixel frmPicture.imgload.HDC, J, i, RGB(r, g, b)Next JfrmPicture.imgload.RefreshDoEventsNext i‘frmPicture.StatusBar1.Panels(1).Text = “”frmPicture.Pictemp.Picture = frmPicture.imgload.ImagefrmPicture.Pictemp.Refresh

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

58 of 62 20/11/2013 0:10

Page 59: Akses Pixel

End Sub

pada saat saya lakukan prose bermasalah dengan ” GetRGB” pesan yang muncul FUNCTION NOTDEFINEDTOLONG PENCERAHANYA..?

0

0

iRate This

Balas130 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 file

0

0

iRate This

Balas131 andhie on 30 Oktober 2011 berkata:bang kira2 ini maksudx apa ya?

varx, y, w, h, k, l: integer;PC, PH: PByteArray;Ki, Ri, Gi, Bi, Ko, Ro, Go, Bo: array of array of byte;jumlah: real;beginRandomize;w := FormCitra.Image.Picture.Width;h := FormCitra.Image.Picture.Height;if (FormCitra.Image.Picture.Bitmap.PixelFormat = pf8bit)thenbeginSetLength(Ki, w, h);SetLength(Ko, w, h);for y := 0 to h-1 dobeginPC := FormCitra.Image.Picture.Bitmap.ScanLine[y];PH := FormHasil.Image.Picture.Bitmap.ScanLine[y];for x := 0 to w-1 dobeginKi[x, y] := PC[x];Ko[x, y] := PH[x];end;

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

59 of 62 20/11/2013 0:10

Page 60: Akses Pixel

end;for x := M to w-M-1 dofor y := N to h-N-1 dobeginjumlah := 0;for k := -M to M dofor l := -N to N dojumlah := jumlah+Ki[x-k,y-l]*Mask[k,l];if (Round(jumlah) 255) thenKo[x,y] := 255elseKo[x,y] := Round(jumlah);end;for y := 0 to h-1 dobeginPH := FormHasil.Image.Picture.Bitmap.ScanLine[y];for x := 0 to w-1 doPH[x] := Ko[x, y];end;Ki := nil;Ko := nil;end;

masi pemula bang trus itu fungsinya buat apa?terima kasih

0

0

iRate This

Balas132 agus on 12 Desember 2011 berkata:mas sya lagi ada tugas kuliah tentang steganografi 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

iRate This

Balas133 bayu on 12 Mei 2012 berkata:pagi, maaf mau numpang nanya kalo misal kita punya file gambar/foto (apapun formatnya) yangmemiliki kapasitas 10mb, nah yang mau saya tahu bagaimana caranya kitamendapatkan/menghitung pixelnya kemudian dari pixel tersebut terdapar RGBnya/byte kemudian

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

60 of 62 20/11/2013 0:10

Page 61: Akses Pixel

lagi berapa nilai bitnya, sedangkan kita mau cari adalah nilai bit dalam bentuk binernya…mohonteori atau pencerahannya…terima kasih.

0

0

iRate This

Balas134 Kallon on 11 Oktober 2012 berkata:cara menampilkan bilingan 0-255 pada citra digital degan delphi.. tolong ya!! KallonThanks b4

0

0

iRate This

Balas135 Samsu Arif on 17 Juli 2013 berkata:Mau nanya mas, Gimana menampilkan image dengan nilai pikselnya real,misalkan : 2.3, 2.8 dst. jadibukan nilai dari 0-255.

0

0

iRate This

Balas136 pebbie on 18 Juli 2013 berkata:kalau nilainya real bisa dinormalisasi dari min..max ke rentang intensitas 0..255 (dibulatkan)

0

0

iRate This

Balas137 Asih on 22 Agustus 2013 berkata:bagi ilmu dong mas, metode canny pake delphi….dan nampilin koordinatnyatrims.

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

61 of 62 20/11/2013 0:10

Page 62: Akses Pixel

0

0

iRate This

Balas

1 Zig-Zag Image Scanning « GAIBlog

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

Ikuti

Follow “GAIBlog”

Powered by WordPress.com

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

62 of 62 20/11/2013 0:10