Representasi Citra Digital dan Piksel Penyusunnya


Citra adalah representasi dari fungsi intensitas cahaya dalam bidang dua dimensi. Berdasarkan sinyal pembentuknya, citra dibedakan menjadi dua jenis yaitu citra analog dan citra digital.

1. Citra Analog
Citra analog merupakan citra yang terbentuk dari sinyal kontinyu. Nilai intensitas cahaya pada citra analog memiliki range antara 0 s.d ~. Alat akuisisi citra analog antara lain mata manusia dan kamera analog.

2. Citra Digital
Citra digital merupakan citra yang terbentuk dari sinyal diskrit. Nilai intensitas cahaya pada citra digital bergantung pada kedalaman bit yang menyusunnya (materi lebih lanjut mengenai kedalaman bit suatu citra dapat dilihat pada laman berikut: Kedalaman Bit Suatu Citra Grayscale). Alat akuisisi citra digital antara lain yaitu kamera digital, smartphone, webcam, scanner, mikroskop digital, pesawat radiodiagnostik seperti CT Scan, CR, MRI, USG, dll.

Dalam bidang dua dimensi, citra dibentuk oleh sekumpulan picture element (pixel) yang memiliki dua informasi penting yaitu koordinat piksel (x,y) dan nilai intensitas piksel f(x,y) (materi lebih lanjut mengenai piksel sebagai penyusun citra digital dapat dilihat pada laman berikut: Pengolahan Citra Digital).

Berikut ini merupakan contoh aplikasi pemrograman matlab mengenai representasi citra digital dan piksel penyusunnya:
1. Citra digital 1-bit (2 derajat keabuan)
Pada citra ini nilai intensitas citra dibagi menjadi 2^1 = 2 derajat keabuan yaitu hitam (0) dan putih (1). Citra jenis ini disebut juga dengan citra biner (binary image).


2. Citra digital 2-bit (4 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^2=4 derajat keabuan yaitu hitam (0), abu-abu gelap (1), abu-abu terang (2), dan putih (3).

3. Citra digital 3-bit (8 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^3=8 derajat keabuan

4. Citra digital 4-bit (16 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^4=16 derajat keabuan

5. Citra digital 5-bit (32 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^5=32 derajat keabuan

6. Citra digital 6-bit (64 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^6=64 derajat keabuan

7. Citra digital 7-bit (128 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^7=128 derajat keabuan

8. Citra digital 8-bit (256 derajat keabuan)
Pada citra jenis ini, nilai intensitas citra dibagi menjadi 2^8=256 derajat keabuan

File source code lengkap beserta citra untuk menampilkan piksel suatu citra digital dapat diperoleh melalui halaman berikut ini: Source Code

Sedangkan tampilan source codenya adalah:

function digital_image
global edit1 ax1 panel4 J
f = figure('Name','Digital Image','MenuBar','none',...
    'ToolBar','none','NumberTitle','off','Position',[250 130 800 500]);
panel1 = uipanel('Title','Digital Image','FontWeight','bold',...
    'FontSize',10,'Position',[.1 .3 .35 .6]);

panel2 = uipanel('Title','Bit Depth','FontWeight','bold',...
    'FontSize',10,'Position',[.1 .12 .35 .13]);

btn1 = uicontrol('Parent',panel2,'Style', 'pushbutton', 'String', '<<',...
    'Position', [12 12 80 20],'Callback', @pushbutton1);

btn2 = uicontrol('Parent',panel2,'Style', 'pushbutton', 'String', '>>',...
    'Position', [183 12 80 20],'Callback', @pushbutton2);

ax1 = axes('Parent',panel1,'Position',[.1 .1 .85 .85],'XTick',[],...
    'YTick',[],'Visible','off');

edit1 = uicontrol('Parent',panel2,'Style','edit','Enable','inactive',...
    'String','1','Position',[98 12 80 20]);

panel3 = uipanel('Title','Pixel Region','FontWeight','bold',...
    'FontSize',10,'Position',[.55 .3 .35 .6]);

panel4 = uipanel('Parent',panel3,'Position',[.1 .1 .8 .8]);

I = im2double(imread('cameraman.tif'));

n = 1;
J = round(I.*((2^n)-1));
cmap = zeros(2^n,3);
for i = 1:2^n
    cmap(i,:) = (i-1)/((2^n)-1);
end
axes(ax1)
himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:(2^n)-1]);
impixelregionpanel(panel4, himage);

function pushbutton1(~,~)
global edit1 ax1 panel4
image_num = str2double(get(edit1,'string'));

if image_num > 1
    image_num = image_num-1;
    I = im2double(imread('cameraman.tif'));
    
    n = image_num;
    J = round(I.*((2^n)-1));
    cmap = zeros(2^n,3);
    for i = 1:2^n
        cmap(i,:) = (i-1)/((2^n)-1);
    end
    axes(ax1)
    himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:(2^n)-1]);
    switch image_num
        case 5
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:2:(2^n)-1]);
        case 6
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:5:(2^n)-1]);
        case 7
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:25:(2^n)-1]);
        case 8
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:50:(2^n)-1]);
    end
    
    set(edit1, 'string', image_num);
    impixelregionpanel(panel4, himage);
else
    image_num = 1;
    set(edit1, 'string', image_num);
end

function pushbutton2(~,~)
global edit1 ax1 panel4
image_num = str2double(get(edit1,'string'));

if image_num < 8
    image_num = image_num+1;
    I = im2double(imread('cameraman.tif'));
    
    n = image_num;
    J = round(I.*((2^n)-1));
    cmap = zeros(2^n,3);
    for i = 1:2^n
        cmap(i,:) = (i-1)/((2^n)-1);
    end
    axes(ax1)
    himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:(2^n)-1]);
    switch image_num
        case 5
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:2:(2^n)-1]);
        case 6
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:5:(2^n)-1]);
        case 7
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:25:(2^n)-1]);
        case 8
            himage = imshow(J,[]);colormap(cmap),colorbar('Ticks',[0:50:(2^n)-1]);
    end
    
    set(edit1, 'string', image_num);
    impixelregionpanel(panel4, himage);
else
    image_num = 8;
    set(edit1, 'string', image_num);
end

Posted on January 25, 2016, in Pengolahan Citra and tagged , , , , , , , , , , , , , , , , , , , , , , , . Bookmark the permalink. 7 Comments.

  1. kak, saya mau tanya. bagaimana cara menyusun piksel pada citra menjadi satu dimensi saja? misalkan citra dg piksel 3×3 diubah menjadi 9×1

  2. kak, saya mau tanya. bagaimana cara menyusun piksel pada citra menjadi satu dimensi saja? misalkan citra dg piksel 2000×500 diubah menjadi 1000×135 dan codingnya seperti apa?

  3. Kaka.. kalo misalnya citra saya 8 bit 0-255, bagaimana cara kuantisasi nya kakaa.. menggunakan perintah apa kaka.. untuk bisa dijadikan matirks lebih kecil.??

  1. Pingback: PENGERTIAN PENGOLAHAN CITRA DIGITAL, PENGENALAN POLA DAN GRAFIKA KOMPUTER – Ilham_STK

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: