Minggu, 05 Juli 2009

tugas 7 image retrieval


Ada dua cara yang dapat dilakukan dalam pengambilan kembali suatu image atau image retrieval
a. context-based adalah pengambilan data dengan merujuk pada kandungan semantik berkaitan dengan image, biasanya berhubungan dengan deskripsi image misalnya keyword dari image.
b. content-based adalah pengambilan data dengan merujuk pada fitur image seperti warna, tekstur, bentuk, atau kombinasi atau yang biasa desebut dengan Content Based Image Retrieval (CBIR).
Pada perkembangannya teknik context based menjadi tidak praktis dikarenakan adanya ukuran basis data yang besar dan penilaian subjektif dalam mengartikan image dengan text. Untuk menghindari teknik ini, maka digunakan pendekatan lain dalam image retrieval yaitu content based.CBIR adalah salah satu metodologi untuk pemanggilan kembali data image berdasarkan content sebuah image. Teknik CBIR yang banyak digunakan adalah teknik warna, teknik tekstur, dan teknik bentuk. Pada sistem CBIR, content visual dari image akan diekstraksi dan diuraikan menggunakan metode pengekstrakan ciri. Untuk mendapatkan kembali image, user menginputkan query image. Kemudian sistem akan mengekstrak image tersebut sehingga menghasilkan fitur ciri image. Fitur ciri image query dan image dalam database akan dicari similaritynya. Image yang memiliki nilai similarity yang paling tinggi akan muncul diurutan teratas. Gambar dibawah ini memperlihatkan bentuk umum sistem CBIR. Pada image tersebut terdapat dua jalur utama yaitu query dan database. Pada kedua lajur tersebut terdapat visual content description yang akan digunakan untuk proses similarity comparison, indexing dan retrieval.

Jumat, 19 Juni 2009

tugas 5





dari gambar tersebut untuk nilai yang dimasukkan masih belum ada, nantinya auto level akan mengatur brightness dan contrass gambar secara otomatis, dengan cara mencari nilai terbesar dan terkecil rata-rata red green blue tiap-tiap pixel, setelah itu akan dicari jarak antara nilai terkceil dan terbesar yang akan dijadikan sebagai nilai untuk memperbaiki citra, dalam hal ini citra akan diubah ke format grayscale.
setelah itu nantinya akan dimasukkan nilai, dan akan dilihat perbedaan antara nilai yang belum dimasukkan dengan yang sudah dimasukkan. untuk nilai masukkan 45 gambar yang terlihat lebih terang dibandingkan dengan nilai dengan masukkan 150. Semakin besar nilai yang dimasukkan maka gambar yang dihasilkan tidak terlihat begitu jelas atau semakin buram.

Rabu, 27 Mei 2009

tugas 2

1. Tambahan program pada button untuk melakukan load gambar:

void CPrak11_1Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|*.bmp||";
CFileDialog m_ldFile(TRUE, "*.bmp", name,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter);
if(m_ldFile.DoModal()==IDOK)
{
name=m_ldFile.GetPathName();
}
CDC* pDC = m_pic1.GetDC();// mengarah kontrol picture
CDC dcMem; //mengarahkan obyek yg sdh dipilih pd bitmap
CRect rect;//kotak di picture
BITMAP bm;//mendefinisikan fungsi2 yg ada d bitmap
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name ,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach();
m_bmpBitmap.Attach(hBitmap);
}
m_pic1.GetClientRect(rect);//
m_bmpBitmap.GetBitmap(&bm);//
dcMem.CreateCompatibleDC(pDC);
//pDC->MoveTo(10,190);
//pDC->LineTo(300,190);
dcMem.SelectObject(&m_bmpBitmap);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
}

2. Tambahan program pada button 2 yang menampilkan warna merah:
void CPrak11_1Dlg::OnButton2()
{
// TODO: Add your control notification handler code here
int i,j,red,green,blue;
long int warna;
CDC* pDC = m_pic1.GetDC();// mengarah kontrol picture
CDC dcMem1; //mengarahkan obyek yg sdh dipilih pd bitmap
CRect rect;//kotak di picture
BITMAP bm;//mendefinisikan fungsi2 yg ada d bitmap
int hr[256];
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
name,IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach();
m_bmpBitmap.Attach(hBitmap);
}
m_pic1.GetClientRect(rect);//
m_bmpBitmap.GetBitmap(&bm);//

dcMem1.CreateCompatibleDC(pDC);
dcMem1.SelectObject(&m_bmpBitmap);

for(i=0;i<256;i++)
hr[i]=0;
for(i=0;i
for(j=0;j
{
warna=dcMem1.GetPixel(j,i);
WarnaToRGB(warna,&red,&green,&blue);
hr[red]=hr[red]+1;
}
float hmax=hr[0];
for(i=1;i<256;i++)
{
if(hr[i]>hmax)
hmax=hr[i];
}
for(i=0;i<256;i++)
hr[i]=120*hr[i]/hmax;

CDC* pDC1=m_pic2.GetDC();
pDC1->MoveTo(0,100);
pDC1->LineTo(550,100); //sb x
pDC1->MoveTo(0,100-(int)hr[0]); //ttk h[0]
for(i=1;i<256;i++)
{
pDC1->MoveTo(i*2,100);
pDC1->LineTo(i*2,100-(int)hr[i]);
}
}

3. Merubah data pixel ke RGB:

void WarnaToRGB(long int warna,int *Red, int *Green, int *Blue)
{
*Red = warna & 0x000000FF;
*Green = (warna & 0x0000FF00) >> 8;
*Blue = (warna & 0x00FF0000) >> 16;
}

4. Mengubah RGB ke data pixel:

long int RGBToWarna(int Red, int Green, int Blue)
{
return(Red+(Green<<8)+(Blue<<16));
}

Selasa, 21 April 2009

tugas laporan praktikum 2


terdapat ketidaksempurnaan pada gambar di samping, yaitu adanya gambar lain yang masuk pada tampilan warna blue, namun untuk hasil output pada kombinasi warna RGB masing-masing bernilai 255, 255, 255 adalah warna putih hal ini sudah termasuk memenuhi kriteria.



Pada percobaan kedua memahami maksud dari percobaan ini. Yaitu bagaimana kita memproses gambar dengan mengambil warna RGB (red,green,blue)
Tampilan awal adalah pada saat penekanan tombol merah warna yang keluar adalah merah. Begitu juga sama halnya untuk warna hijau dan biru. dan menamplikan semua warna langsung yaitu Red, Green, dan Blue

laporan praktikum 1





Praktikum 1 melakukan simulasi percobaan yang dilampirkan pada listing prgram, menggunakan Microsoft Visual C++ dengan MFC
Gambar ini menunjukkan pada saat penekanan button 1. Belum ada tampilan gambar yang muncul.
Pada tampilan kedua ini dilakukan penekanan pada button2.

Pengikut