Rgb To Binary Tutorial Image Processing Dengan Visual Studio
Dalam tutorial Visual Studio kali ini akan membahas mengenai digital image processing (pengolahan gambaran digital) dengan memakai C#. Pengolahan gambaran digital dalam bahasan kali ini yaitu mengubah suatu gambaran berwarna (RGB) menjadi gambaran binary, bernilai 0 atau 1, hitam atau putih.
Berikut ini yaitu pola design form window project C#.
Untuk component yang dipakai ialah.
Tambahkan class untuk menangani proses pengolahan gambaran dari RGB ke binary level. Pada tab PROJECT pilih Add Class, untuk pola ini beri nama class tersebut process. Berikut source code untuk class process.
Tambahkan code berikut pada convertButton, untuk mengubah image awal menjadi grayscale.
Untuk Build Debug dan Release, atur Properties dari Project ini untuk jalan masuk Allow unsafe code. Sumber http://lang8088.blogspot.com/
Berikut ini yaitu pola design form window project C#.
Untuk component yang dipakai ialah.
- openButton - Button - untuk membuka file image
- convertButton - Button - untuk mengubah initial image ke binary level
- initialPicture - PictureBox - menampilkan image awal
- convertedPicture - PictureBox - menampilkan image yang telah diubah ke grayscale
- OpenFileDialog - obrolan window ketika mencari file image yang akan dibuka
FileDialog fileDialog = new OpenFileDialog();
fileDialog.ShowDialog(this);
string imageFile = fileDialog.FileName;
if (imageFile == string.Empty) return;
initialPicture.Image = Image.FromFile(imageFile);
fileDialog.ShowDialog(this);
string imageFile = fileDialog.FileName;
if (imageFile == string.Empty) return;
initialPicture.Image = Image.FromFile(imageFile);
Tambahkan class untuk menangani proses pengolahan gambaran dari RGB ke binary level. Pada tab PROJECT pilih Add Class, untuk pola ini beri nama class tersebut process. Berikut source code untuk class process.
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace toBinary
{
class process
{
public bool blackWhite(Bitmap b)
{
BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int stride = bmData.Stride;
System.IntPtr Scan0 = bmData.Scan0;
unsafe
{
byte nilaiAwal = 0;
byte* p = (byte*)(void*)Scan0;
int nOffset = stride - b.Width * 3;
for (int y = 0; y < b.Height; ++y)
{
for (int x = 0; x < b.Width; ++x)
{
nilaiAwal = (byte)(p[0]);
if (nilaiAwal >= 127)
{
p[0] = p[1] = p[2] = 255;
}
else
{
p[0] = p[1] = p[2] = 0;
}
p += 3;
}
p += nOffset;
}
}
b.UnlockBits(bmData);
return true;
}
}
}
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace toBinary
{
class process
{
public bool blackWhite(Bitmap b)
{
BitmapData bmData = b.LockBits(new Rectangle(0, 0, b.Width, b.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
int stride = bmData.Stride;
System.IntPtr Scan0 = bmData.Scan0;
unsafe
{
byte nilaiAwal = 0;
byte* p = (byte*)(void*)Scan0;
int nOffset = stride - b.Width * 3;
for (int y = 0; y < b.Height; ++y)
{
for (int x = 0; x < b.Width; ++x)
{
nilaiAwal = (byte)(p[0]);
if (nilaiAwal >= 127)
{
p[0] = p[1] = p[2] = 255;
}
else
{
p[0] = p[1] = p[2] = 0;
}
p += 3;
}
p += nOffset;
}
}
b.UnlockBits(bmData);
return true;
}
}
}
Tambahkan code berikut pada convertButton, untuk mengubah image awal menjadi grayscale.
process toBlackWhite = new process();
Bitmap image = new Bitmap(initialPicture.Image);
toBlackWhite.blackWhite(image);
convertedPicture.Image = image;
Bitmap image = new Bitmap(initialPicture.Image);
toBlackWhite.blackWhite(image);
convertedPicture.Image = image;
Untuk Build Debug dan Release, atur Properties dari Project ini untuk jalan masuk Allow unsafe code. Sumber http://lang8088.blogspot.com/
0 Response to "Rgb To Binary Tutorial Image Processing Dengan Visual Studio"
Posting Komentar