Arsip: Membagi gambar bitmap dalam kotak-kotak

more 15 years ago
alfa1412
1.Bagaimana jika punya gambar bitmap grayscale ( 0-255 )berukuran 100x100 piksel.
Cara untuk membagi gambar bitmap tersebut menjadi 4 bagian masing-masing berukuran 50x50 piksel. Kemudian tiap kotak dinamakan dg K1,K2,K3 dan K4.
2.Bagaimana jika Setelah itu cara untuk mendapatkan nilai rata-rata piksel dari tiap kotak-kotak berukran 50x50 tersebut. Misal nilai rata-rata piksel itu disebut R1, R2, R3 dan R4. (nilai rata-rata adalah jumlahan nilai byte tiap piksel dibagi 2500 [karena 1 kotak tadi berukuran 50x50] )
Lalu bagaimana cara bisa menuliskan hasil R1, R2, R3 dan R4 ke dalam StringGrid.

more 15 years ago
pebbie
scanningnya dalam rect aja.. rectnya dicalculate.
asumsi bitmap greyscale pf8bit palet inkremental.
function calc_avg(bb:TBitmap; rr: TRect):real;
var
ii, jj : integer;
p : PByteArray;
begin
result := 0;
for jj := rr.Top to rr.Bottom do begin
p := bb.Scanline[jj];
for ii := rr.Left to rr.Right do begin
result := result + p[ii];
end;
end;
result := result / ((rr.Bottom-rr.Top+1)(rr.Right-rr.Left+1));
end;
var
nw,nh:integer;
cell_sz : integer;
avg : real;
b : TBitmap;
i, j : integer;
begin
cell_sz := 50;
nw := b.Width div cell_sz;
nh := b.Height div cell_sz;
for j := 0 to nh-1 do begin
for i := 0 to nw-1 do begin
avg := calc_avg(b, rect(i cell_sz, j cell_sz, (i+1) cell_sz, (j+1)*cell_sz));
{ do whatever with avg value }
end;
end;
end

more 15 years ago
DelphiExpert
lalu bagaimana cara menuliskan hasil R1, R2, R3 dan R4 ke dalam StringGrid kak pebbie? :mrgreen:

more 15 years ago
alfa1412
Thks balesannya
ya gmn cara menuliskan r1,r2, r3 dan r4?
soalnya susunan kotak k1, k2,k3,k4 di dalam gambar agar juga sesuai dengan dengan susunan rata2nya di stringgrid r1,r2, r3 dan r4 (kolom dan barisnya)
gmn juga bila saya membuat batasan pada 3 kondisi:
1. Jika rata2 nilai piksel (avg) lebih besar dari 10000 maka termasuk kategori "Best"
2. Jika rata2 nilai piksel (avg) antara 5000-10000 maka termasuk kategori "good"
3. Jika rata2 nilai piksel (avg) kurang dari 5000 maka termasuk kategori "poor"
kmudian string2 kondisi tadi masuk ke string grid matrik sesuai kolom dan barisnya..
thks

more 15 years ago
alfa1412
oh ya..maaf lupa klo .. average..
ale kmrn q buat pake penambahan saja.. belum dibagi 2500
klo gmn juga bila saya membuat batasan pada 3 kondisi:
1. Jika rata2 nilai piksel (avg) lebih besar dari 150-255 maka termasuk kategori "Best"
2. Jika rata2 nilai piksel (avg) antara 70-149 maka termasuk kategori "good"
3. Jika rata2 nilai piksel (avg) kurang dari 0-70maka termasuk kategori "poor"
kmudian string2 kondisi tadi masuk ke string grid matrik sesuai kolom dan barisnya..

more 15 years ago
pebbie
lho? rata-ratanya integer to? silakan disesuaikan sendiri karena kupikir rata-rata yang real.
klo avgnya integer...
di bagian { do whatever with avg value }
isi dengan
case avg of:
150..255: stringgrid1.cell[i, j] := 'BEST';
70..149: stringgrid1.cell[i, j] := 'GOOD';
0..69: stringgrid1.cell[i, j] := 'POOR';
klo real...
if avg > 150 then stringgrid1.cell[i, j] := 'BEST'
else if avg > 70 then stringgrid1.cell[i, j] := 'GOOD'
else stringgrid1.cell[i, j] := 'POOR';
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 4 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- Koneksi ke Mysql tanpa komponen vcl
by rusli_chow in Tip n Trik Pemrograman more 15 years ago - insert dan update database secara bersamaan sql server 2000
by ricky_seldjatem in MsSQL more 15 years ago - Akses Ke Server dengan SQLyog error
by onsir in MySQL more 16 years ago - Gimana.. Cara Lock table baris di DBgrid...
by deangelz15 in MySQL more 15 years ago - menghitung durasi
by skh_cay in Hal umum tentang Pascal Indonesia more 14 years ago - Masalah dengan fungsi YearOf
by Random in Hal umum tentang Pascal Indonesia more 16 years ago - aplikasi pda dgn delphi 2005
by ImanD in Tip n Trik Pemrograman more 17 years ago - Coba Login Yahoo
by Starboard in Network, Files, I/O & System more 16 years ago - file instalasi
by WinXp in Enginering more 18 years ago - Create Database Programmatically
by albie in FireBird more 15 years ago