Selasa, 21 Juli 2009

Tugas 6

// searching for vertical linesshort[,] vse = new short[3, 3] {{ 0, 1, 0 },{ 0, 1, 0 },{ 0, 1, 0 }};AForge.Imaging.Filters.HitAndMiss vFilter =new AForge.Imaging.Filters.HitAndMiss( vse );System.Drawing.Bitmap vImage = vFilter.Apply( image );// searching for horizontal linesshort[,] hse = new short[3, 3] {{ 0, 0, 0 },{ 1, 1, 1 },{ 0, 0, 0 }};AForge.Imaging.Filters.HitAndMiss hFilter =new AForge.Imaging.Filters.HitAndMiss( hse );System.Drawing.Bitmap hImage = hFilter.Apply( image );source code 2// create filter sequenceAForge.Imaging.Filters.FiltersSequence filterSequence = new AForge.Imaging.Filters.FiltersSequence();// add 8 thinning filters with different structuring elementsfilterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, 0, 0}, {-1, 1, -1}, {1, 1, 1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 0, 0}, {1, 1, 0}, {-1, 1, -1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{1, -1, 0}, {1, 1, 0}, {1, -1, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 1, -1}, {1, 1, 0}, {-1, 0, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{1, 1, 1}, {-1, 1, -1}, {0, 0, 0}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{-1, 1, -1}, {0, 1, 1}, {0, 0, -1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, -1, 1}, {0, 1, 1}, {0, -1, 1}}, HitAndMissMode.Thinning ));filterSequence.Add(new AForge.Imaging.Filters.HitAndMiss(new short [,] {{0, 0, -1}, {0, 1, 1}, {-1, 1, -1}}, HitAndMissMode.Thinning ));// create filter iterator for 10 iterationsAForge.Imaging.Filters.FilterIterator filter =new AForge.Imaging.Filters.FilterIterator(filterSequence, 10);

Senin, 06 Juli 2009

tugas 7

Satu fungsi image adalah satu penyajian matematis dari satu image, antara lain: f ( x) = f ( x,y ) intensitas cahaya atau daya pada posisi x. Satu dapat tulis: f ( x) = i( x). r ( x) dengan i (x ) iluminasi dan r (x ) pemantulan. Keduanya adalah terbatas: MEMASUKI<= i( x) <= dan memasuki<= r ( x) <= 1, sesuai dengan total pemantulan batas serapan dan penjumlahan. Pentingnya r (x ) dalam hal ini, tapi dengan cahaya struktur dan bentuk dari menaungi i(x ) permainan satu peran penting. Dengan tampilan hitam dan putih , f ( x) adalah satu nilai skalar; di image spektral multi f (x ) adalah satu nilai vektor. Image yang punya f 3 dimensi: f ( x) = { fred (x ), fgreen (x ), fblue (x )}. Pencitraan image diambil dari satelit atau pesawat udara, menghasilkan satu image yang mana dapat bisa berada pada dimensi 30 sampai dimensi 256 . Untuk 3 - D menggambar satu x= penggunaan {x,y,x }, dan untuk satu gugus berkala image: f ( x,t ).

Satu model pendigitan dideskripsikan pada koordinat digtal ruang dan waktu, memanggil sampling, dan nilai intensitas tersebut, disebut dengan kuantisasi. Kamera CCD dan scanner sering mempergunakan persegi untuk melakukan sampling; pancaran pemasukan kemudian adalah terintegrasi berlalu area atau bagian dari ini. Untuk menggambar image yang mana harus diperlihatkan pada televisi, segiempat memiliki sisi dengan rasio 4:3 ( rasio aspek) atau 16:9 untuk layar lebar paling baru standar TV. Format lain digunakan juga pada kamera CCD percobaan seperti titik bersudut enam. Ini mempunyai keuntungan pada satu titik yang punya memiliki jenis sesuatu dari titik berdekatan.

Ketika memilih satu sistem kamera lensa zoom, pastikan bahwa resolusinya cukup tinggi jadi saat itu resolusi paling kecil punya satu luas permukan dari paling tidak pada suatu titik tertentu. Banyaknya pixel yang diperlukan tergantung pada kebutuhan yang diukur dan dengan akurasi yang dihitung. Lebih tinggi daya pisah, makin banyak tempat yang diperlukan untuk penyimpanan ini. Waktu kalkulasi untuk algoritma juga bertambah, misal seperti n.ln (n ), n2 atau n3, n menjadi beberapa titik.

Itulah sebabnya mengapa daya pisah piramida dipergunakan: antara lain dari satu 512*512 memperoleh image, kita hitung pertama 256*256, 128*128, 64*64, dsb. image. Menemukan objek dapat terjadi pada 64*64 gambar. Menentukan permukaan dari satu objek kemudian lebih tepat pada 512*512 gambar. Tentu, waktu yang ada harus dibebani siap sedia dibutuhkan ke bangun piramida seperti halnya ingatan ekstra memerlukan simpan image. Bagaimanapun, sejumlah titik pada image ekstra tidak akan pernah lebih dari sejumlah titik pada image asli (melihat bab 7.1.1). Sejumlah bytes memerlukan untuk menyimpan data intermediate, seperti itu tepi dari objek, dapat kurang


Tugas7

Satu fungsi image adalah satu penyajian matematis dari satu image, antara lain: f ( x) = f ( x,y ) intensitas cahaya atau daya pada posisi x. Satu dapat tulis: f ( x) = i( x). r ( x) dengan i (x ) iluminasi dan r (x ) pemantulan. Keduanya adalah terbatas: MEMASUKI<= i( x) <= dan memasuki<= r ( x) <= 1, sesuai dengan total pemantulan batas serapan dan penjumlahan. Pentingnya r (x ) dalam hal ini, tapi dengan cahaya struktur dan bentuk dari menaungi i(x ) permainan satu peran penting. Dengan tampilan hitam dan putih , f ( x) adalah satu nilai skalar; di image spektral multi f (x ) adalah satu nilai vektor. Image yang punya f 3 dimensi: f ( x) = { fred (x ), fgreen (x ), fblue (x )}. Pencitraan image diambil dari satelit atau pesawat udara, menghasilkan satu image yang mana dapat bisa berada pada dimensi 30 sampai dimensi 256 . Untuk 3 - D menggambar satu x= penggunaan {x,y,x }, dan untuk satu gugus berkala image: f ( x,t ).

Satu model pendigitan dideskripsikan pada koordinat digtal ruang dan waktu, memanggil sampling, dan nilai intensitas tersebut, disebut dengan kuantisasi. Kamera CCD dan scanner sering mempergunakan persegi untuk melakukan sampling; pancaran pemasukan kemudian adalah terintegrasi berlalu area atau bagian dari ini. Untuk menggambar image yang mana harus diperlihatkan pada televisi, segiempat memiliki sisi dengan rasio 4:3 ( rasio aspek) atau 16:9 untuk layar lebar paling baru standar TV. Format lain digunakan juga pada kamera CCD percobaan seperti titik bersudut enam. Ini mempunyai keuntungan pada satu titik yang punya memiliki jenis sesuatu dari titik berdekatan.

Ketika memilih satu sistem kamera lensa zoom, pastikan bahwa resolusinya cukup tinggi jadi saat itu resolusi paling kecil punya satu luas permukan dari paling tidak pada suatu titik tertentu. Banyaknya pixel yang diperlukan tergantung pada kebutuhan yang diukur dan dengan akurasi yang dihitung. Lebih tinggi daya pisah, makin banyak tempat yang diperlukan untuk penyimpanan ini. Waktu kalkulasi untuk algoritma juga bertambah, misal seperti n.ln (n ), n2 atau n3, n menjadi beberapa titik.

Itulah sebabnya mengapa daya pisah piramida dipergunakan: antara lain dari satu 512*512 memperoleh image, kita hitung pertama 256*256, 128*128, 64*64, dsb. image. Menemukan objek dapat terjadi pada 64*64 gambar. Menentukan permukaan dari satu objek kemudian lebih tepat pada 512*512 gambar. Tentu, waktu yang ada harus dibebani siap sedia dibutuhkan ke bangun piramida seperti halnya ingatan ekstra memerlukan simpan image. Bagaimanapun, sejumlah titik pada image ekstra tidak akan pernah lebih dari sejumlah titik pada image asli (melihat bab 7.1.1). Sejumlah bytes memerlukan untuk menyimpan data intermediate, seperti itu tepi dari objek, dapat kurang


Kamis, 02 Juli 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

tugas 4 gray scale kuantisasi

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

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