Sabtu, 29 Juli 2017

CITRA DIGITAL

Penerapan gambar di Citra Digital


Pengertian Pengolahan Citra Digital Dan Pemanfaatannya

Pengolahan Citra Digital----- Sebagai mahasiswa teknik Informatika kita harus Mengenal mata kuliah yang satu ini, Pengolahan Citra Digital. Biasanya Pengolahan Citra Digital di ajarkan di semester 6 atau 7, tergantung program studi masing-masing universitas. Pengertian dari Pengolahan Citra Digital adalah : proses yang bertujuan untuk memanipulasi dan menganalisis citra dengan bantuan komputer. Baik citra yang berdimensi 2 atau citra 3 dimensi. 

Pengolahan citra digital dapat dikelompokkan dalam dua jenis kegiatan :
1. Memperbaiki kualitas suatu gambar, sehingga dapat lebih mudah diinterpretasi oleh mata manusia. Perbaikan ini termasuk dalam image Enhancement, sehingga di dapati kualitas citra yang lebih bagus dari sebelumnya, ada banyak sekali metode dalam perbaikan citra digital. Nanti akan dijelaskan admin pada postingan, berikutnya. Tunggu dan sabar kuliah onlinenya yahh :D
2. Mengolah informasi yang terdapat pada suatu gambar untuk keperluan pengenalan objek secara otomatis. Sebagai contoh aplikatifnya, image detection, sebuah potret wajah seseorang yang telah disimpan dalam databse, akan dapat dikenali oleh sistem komputer yang telah memuat pengolahan citra digital. Sebagai contoh simplenya, dalam aplikasi facebook anda, ketika anda mengunggah sebuah foto, maka facebook akan mengenali wajah siapa saja yang ada dalam foto tersebut. Nah, dalam image detection, akan ada syarat serta ketentuan tertentu yang harus di penuhi.

Bidang aplikasi kedua yang sangat erat hubungannya dengan ilmu pengetahuan pola (pattern recognition) yang umumnya bertujuan mengenali suatu objek dengan cara mengekstrak informasi penting yang terdapat pada suatu citra. Bila pengenalan pola dihubungkan dengan pengolahan citra, diharapkan akan terbentuk suatu sistem yang dapat memproses citra masukan sehingga citra tersebut dapat dikenali polanya. Proses ini disebut pengenalan citra atau image recognition. Proses pengenalan citra ini sering diterapkan dalam kehidupan sehari-hari.

Pengolahan citra dan pengenalan pola menjadi bagian dari proses pengenalan citra. Kedua aplikasi ini akan saling melengkapi untuk mendapatkan ciri khas dari suatu citra yang hendak dikenali. Secara umum tahapan pengolahan citra digital meliputi akusisi citra, peningkatan kualitas citra, segmentasi citra, representasi dan uraian, pengenalan dan interpretasi.


1. program citra berwarna dll

a=imread('c:\image\MAWI 1.jpg');
 red=a(:,:,1);
 green=a(:,:,2);
 blue=a(:,:,3);
 subplot(2,2,1);imshow(a),title('empat bola')
 subplot(2,2,2);imshow(red),title('empat bola merah')
 subplot(2,2,3);imshow(green),title('empat bola hijau')
 subplot(2,2,4);imshow(blue),title('empat bola biru')


x=imread('c:\image\MAWI 1.jpg');
z=x + 80 ;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(z)
y=2.5 * x;
subplot(2,2,1);imshow(x)
subplot(2,2,1);imshow(x)
subplot(2,2,2);imshow(z)
subplot(2,2,3);imshow(y)
figure(1);imshow(x)
figure(1);imshow(x)
figure(2);imshow(z)
figure(3);imshow(y)


2. Program kode program mengubah citra berwarna ke citra abu-abu

img=imread('c:\image\MAWI 1.jpg');
x=uint8(0.2989 * double(img(:,:,1))...
 + 0.5870 *double(img(:,:,2)) + 0.1141 *double(img(:,:,3)));
subplot(2,2,1);imshow(img),title('Rosmawi')
subplot(2,2,2);imshow(x),title('Rosmawi Keluaran')

program mengetahui susunan warna pada citra

a=imread('c:\image\MAWI 1.jpg');
 red   =a(:,:,1);
 green=a(:,:,2);
 blue  =a(:,:,3);
 subplot(2,2,1);imshow(a),title('Masukan empat bola')
 subplot(2,2,2);imshow(red),title('empat bola merah')
 subplot(2,2,3);imshow(green),title('empat bola hijau')
 subplot(2,2,4);imshow(blue),title('empat bola biru')

program mengubah citra abu-abu ke citra biner

img=imread('c:\image\MAWI 1.jpg');
 [tinggi,lebar] = size(img);
 ambang=150;
 biner=zeros(tinggi, lebar);
for baris=1 : tinggi
for kolom=1 : lebar 
if  img(baris,kolom)  >=ambang
biner(baris, kolom) = 0;
else
biner(baris,kolom) =1;
end
end
end

subplot(1,2,1);imshow(img),title('Masukan citra abu-abu')
subplot(1,2,2);imshow(biner),title('citra biner')
imshow(biner)



RGB=imread('C:\Image\MAWI 1.jpg');
YCBCR = rgb2ntsc(RGB);
Y=YCBCR(:,:,1); %Ekstraksi matriks Y
Cb=YCBCR(:,:,2); %Ekstraksi matriks Bc
Cr=YCBCR(:,:,3); %Ekstraksi matriks Br
subplot(2,2,1); imshow(RGB);
subplot(2,2,2); imshow(Y);
subplot(2,2,3); imshow(Cb);
subplot(2,2,4); imshow(Cr);

















program pemotongan aras keabuan

f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
g = f;
for baris=2 : jum_baris-1
    for kolom=2 : jum_kolom-1
        minpiksel = min([f(baris-1, kolom-1)       ...
            f(baris-1, kolom) f(baris, kolom+1)    ...
            f(baris, kolom-1)                      ...
            f(baris, kolom+1) f(baris+1, kolom-1)  ...
            f(baris+1, kolom) f(baris+1, kolom+1)]);
        makspiksel = max([f(baris-1, kolom-1)       ...
            f(baris-1, kolom) f(baris, kolom+1)    ...
            f(baris, kolom-1)                      ...
            f(baris, kolom+1) f(baris+1, kolom-1)  ...
            f(baris+1, kolom) f(baris+1, kolom+1)]);    
            
        if f(baris, kolom) < minpiksel
           g(baris, kolom) = minpiksel;
        else
            if f(baris, kolom) > makspiksel
                g(baris, kolom) = makspiksel;
            else
                g(baris, kolom) = f(baris, kolom);
            end
        end    
    end
end


Program filter Batas
==========================

f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
g = f;
for baris=2 : jum_baris-1
    for kolom=2 : jum_kolom-1
        minpiksel = min([f(baris-1, kolom-1)       ...
            f(baris-1, kolom) f(baris, kolom+1)    ...
            f(baris, kolom-1)                      ...
            f(baris, kolom+1) f(baris+1, kolom-1)  ...
            f(baris+1, kolom) f(baris+1, kolom+1)]);
        makspiksel = max([f(baris-1, kolom-1)       ...
            f(baris-1, kolom) f(baris, kolom+1)    ...
            f(baris, kolom-1)                      ...
            f(baris, kolom+1) f(baris+1, kolom-1)  ...
            f(baris+1, kolom) f(baris+1, kolom+1)]);    
            
        if f(baris, kolom) < minpiksel
           g(baris, kolom) = minpiksel;
        else
            if f(baris, kolom) > makspiksel
                g(baris, kolom) = makspiksel;
            else
                g(baris, kolom) = f(baris, kolom);
            end
        end    
    end
end

subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)



Program Filter Pererataan
===============================
f = imread('c:\image\boneka2.tif');
[jum_baris, jum_kolom] = size(f);
f2=double(f);
for baris=2 : jum_baris - 1
      for kolom=2 : jum_kolom - 1
jumlah= f2 (baris - 1, kolom - 1) + ...
f2(baris - 1 , kolom) + ...
f2(baris - 1, kolom - 1) +  ...
f2(baris, kolom - 1) +  ...
f2(baris, kolom) +  ...
f2(baris, kolom + 1) +  ...
f2(baris +1, kolom - 1) +  ...
f2(baris+1, kolom) +  ...
f2(baris+1, kolom + 1) ;

g(baris, kolom) = uint8 ( 1/9  *  jumlah);
     end
end
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)



program filter median
=======================
f = imread('c:\image\mobil.tif');
[jum_baris, jum_kolom] = size(f);
for baris=2 : jum_baris - 1
      for kolom=2 : jum_kolom - 1
data= [f(baris-1, kolom-1) ...
f(baris-1, kolom) ...
f(baris-1, kolom+1) ...
f(baris, kolom-1) ...
f(baris, kolom) ...
f(baris, kolom+1) ...
f(baris+1, kolom-1) ...
f(baris+1, kolom) ...
f(baris+1, kolom-1)];
%urutkan
for i=1 : 8
   for j=i+1 : 9
      if data(i) > data(j)
temp =data(i);
data(i)=data(j);
data(j)=temp;
     end
  end
end
%ambil nilai median
g(baris,kolom)=data(5);
end
end
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)

program penggeseran citra
---------------------------------------------

f=imread('c:\image\kartun.tif');
[jum_baris,jum_kolom]=size(f);
sx=20;   %penggeseran arah horizontal
sy=60;  %penggeseran arah vertikal
f2=double(f);
g=zeros(size(f2));
for baris=1 : jum_baris
  for kolom=1: jum_kolom
xlama=baris - sx;
ylama=kolom - sy;
  if (xlama >=1) && (xlama<=jum_baris) && ...
  (ylama >=1) && (ylama<=jum_kolom)
  g(baris,kolom)=f2(xlama, ylama);
  else
  g(baris,kolom)=0;
  end
 end
end
h=uint8(g);
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(h)

program memutar citra
============================
f=imread('c:\image\kartun.tif');
 [jum_baris, jum_kolom]=size(f);
sudut=10;  %sudut pemutaran
rad=pi * sudut/180;
cosa=cos(rad);
sina=sin(rad);
f2=f;
for y=1 : jum_baris
  for x=1 :jum_kolom
 x2=round(x * cosa + y * sina);
 y2=round(y * cosa - x * sina);

   if (x2>= 1) && (x2<=jum_kolom) && ...
   (y2 >=1)    && (y2<=jum_baris)
   g(y,x)=f2(y2,x2);
   else
   g(y,x)=0;
   end
 end
end
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)


Program memperbesar Citra dengan fungsi
----------------------------------------------------
function g = perbesar(citra, sy, sx)
f = imread(citra);
[baris, kolom] = size(f);
baris_baru    = baris * sy;
kolom_baru = kolom * sx;
f2 = double(f);
for y=1 : baris_baru
    y2 = ((y-1) / sy) + 1;
    for x=1 : kolom_baru
        x2 = ((x-1) / sx) + 1; 
        g(y, x) = f(floor(y2), floor(x2));
    end
end

h = uint8(g);
end  %akhir fungsi
u=imread('c:\image\lena128.tif');
z=perbesar('c:\image\lena128.tif', 0.25, 0.25);
subplot(1,2,1);imshow(u),title('citra masukan')
subplot(1,2,2);imshow(z),title('citra perbesar')


program memperbesar citra cara tanpa fungsi 
=========================================
f=imread('c:\image\lena128.tif');
[baris, kolom] = size(f);
sy=0.5;
sx=2;
baris_baru    = baris * sy;
kolom_baru = kolom * sx;
f2=f;
for y=1 : baris_baru
    y2 = ((y-1) / sy) + 1;
    for x=1 : kolom_baru
        x2 = ((x-1) / sx) + 1; 
        g(y, x) = f(floor(y2), floor(x2));
    end
end
subplot(1,2,1);imshow(f),title('citra masukan')
subplot(1,2,2);imshow(g),title('citra perbesar')

program pencerminan citra secara horizontal dengan fungsi
==============================================
function g = cerminh(f)
[tinggi, lebar] = size(f);
for y=1 : tinggi
    for x=1 : lebar
        x2 = lebar - x + 1;
        y2 = y;
        g(y, x) = f(y2, x2); 
    end
end
h = uint8(g);
end   %akhir fungsi
f=imread('c:\image\kartun.tif');
h=cerminh(f);
subplot(1,2,1);imshow(f),title('citra masukan')
subplot(1,2,2);imshow(h),title('citra cermin horizontal')

program pencerminan citra secara horizontal dengan fungsi cara kedua
====================================================
function g = cerminh(f)
[jum_baris, jum_kolom] = size(f); 
for baris=1 : jum_baris
    for kolom=1 : jum_kolom
      
        x2 = jum_kolom - kolom + 1;
        y2 = baris;
        
        g(baris,kolom) = f(y2, x2); 
    end
end
%g = uint8(g);
end    %akhir fungsi
f=imread('c:\image\kartun.tif');
g=cerminh(f);
subplot(1,2,1);imshow(f),title('citra masukan')
subplot(1,2,2);imshow(g),title('citra cermin horizontal')
program pencerminan citra secara horizontal tanpa fungsi
==============================================
f=imread('c:\image\kartun.tif');
[jum_baris, jum_kolom] = size(f); 
for baris=1 : jum_baris
    for kolom=1 : jum_kolom
      
        x2 = jum_kolom - kolom + 1;
        y2 = baris;
        
        g(baris,kolom) = f(y2, x2); 
    end
end
subplot(1,2,1);imshow(f),title('citra masukan')
subplot(1,2,2);imshow(g),title('citra cermin horizontal')



program mencari tepi biner objek tanpa fungsi
===========================================

f=imread('c:\image\daun_bin.tif');
[jum_baris, jum_kolom] = size(f);
g=f;
g = zeros(jum_baris, jum_kolom);
for q = 2 : jum_baris - 1
    for p = 2 : jum_kolom - 1
        p0 = f(q, p+1);
        p1 = f(q-1, p+1);
        p2 = f(q-1, p);
        p3 = f(q-1, p-1);
        p4 = f(q, p-1);
        p5 = f(q+1, p-1);
        p6 = f(q+1, p);
        p7 = f(q+1, p+1);
        sigma = p0 + p1 + p2 + p3 + p4 + p5 + p6 + p7;
        if sigma == 8
            g(q, p) = 0;
        else
            g(q, p) = f(q, p);
        end
    end
end
subplot(1,2,1);imshow(f)
subplot(1,2,2);imshow(g)


function hasil=perim1(bw)
u=inbound_tracing(bw);
hasil=length(u) -1;
end  %akhir fungsi

img=imread('c:\image\daun_bin.tif');
perim1(img)

program pusat massa dan fitur menggunakan pusat massa dengan fungsi
==========================================================
function [pusat_x, pusat_y] = centroid(BW)
% CENTROID Untuk memperoleh pusat massa sebuah objek
%    yang terletak pada citra biner BW

[tinggi, lebar] = size(BW);
pusat_x = 0;
pusat_y = 0;
luas = 0;
for q = 1 : tinggi
   for p = 1 : lebar
      if BW(q, p) == 1
         luas = luas + 1;
         pusat_x = pusat_x + p;
         pusat_y = pusat_y + q;
      end
   end
end
pusat_x = pusat_x / luas;
pusat_y = pusat_y / luas;
end  %akhir fungsi

Daun = imread('C:\Image\daun_bin.tif');
[x, y] = centroid(Daun); imshow(Daun);
[panjang, lebar] = size(Daun);
line([0 lebar], [round(y) round(y)],’Color’,’b’)
line([round(x) round(x)], [0 panjang],’Color’,’b’)


Program Citra berwarna RGB Ke CMYK dengan fungsi sudah dimodifikasi
======================================================

function [c,m,y,k] = rgbkecmyk(r,g,b)
if max(max(r)) > 1.0 || max(max(g)) > 1.0 || max(max(b)) > 1.0
    r = double(r) / 255;
    g = double(g) / 255;
    b = double(b) / 255;
end

u = 0.5;
be = 1;
[tinggi, lebar] = size(r);
for baris=1: tinggi
    for kolom=1: lebar
        kb = min([(1-r(baris,kolom)) (1-g(baris,kolom)) (1-b(baris,kolom))]);
        if kb == 1
            c(baris,kolom) = 0;
            m(baris,kolom) = 0;
            y(baris,kolom) = 0;
        else  
            c(baris,kolom)  = (1.0 - r(baris,kolom) -  u * kb);
            m(baris,kolom) = (1.0 - g(baris,kolom) - u * kb);
            y(baris,kolom)  = (1.0 - b(baris,kolom) - u * kb);
            k(baris,kolom) = be * kb;
        end
    end
end

% Konversikan ke jangkauan [0,255]
c  = uint8(c * 255);
m = uint8(m * 255);
y  = uint8(y * 255);
k = uint8(k * 255);
end   %akhir fungsi
[c,m,y,k] = rgbkecmyk(171, 215, 170)

konversi rgb ke cmyk dengan nilai =
c = 64
m = 20
y = 65
k = 40

img = imread('c:\Image\lapangan.tif');
[c,m,y,k] = rgbkecmyk(img(:,:,1), img(:,:,2), img(:,:,3));
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow([c,m,y,k])

Program deteksi garis citra biner dengan fungsi
=================================

function [g] = deteksi(f, h, potong, pembulatan)
if nargin < 3
    potong = false;
end
if nargin < 4
    pembulatan = true;
end
[tinggi_f, lebar_f]  = size(f);
[tinggi_h, lebar_h] = size(h);
if rem(lebar_h, 2) == 0 || rem(tinggi_h, 2) == 0
    disp('lebar dan tinggi h harus ganjil');
    return;
end
m2 = floor(tinggi_h / 2);
n2  = floor(lebar_h / 2);

% Menentukan ukuran hasil beserta penentu  koordinat horizontal/vertikal/45/-45
if potong == true
    sisi_m2 = m2;
    sisi_n2  = n2;
    g = zeros(tinggi_f - 2 * m2, lebar_f - 2 * n2);
else
    sisi_m2 = 0;
    sisi_n2  = 0;
    g = zeros(size(f));
end
f2=double(f);
for y=m2+1 : tinggi_f-m2
    for x=n2+1 : lebar_f-n2
        % Pelaksanaan korelasi f(baris, kolom)
        jum = 0;
        for p= -m2 : m2
            for q= -n2 : n2
                jum = jum + h(p+m2+1,q+n2+1) * f2(y+p, x+q);
            end
        end  
        g(y - sisi_m2, x - sisi_n2) = jum;
    end
end
if pembulatan == true
    g = uint8(g);
end
end    %akhir fungsi

h1 = [-1 2 -1; -1 2 -1 ; -1 2 -1];
img = imread('C:\image\kotak.png');
g = deteksi(img, h1);
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow(g,[0 1])


Program Deteksi garis pada citra Biner
====================================
function [G] = deteksi(F, H, potong, pembulatan)
if nargin < 3
    potong = false;
end

if nargin < 4
    pembulatan = true;
end

[tinggi_f, lebar_f] = size(F);
[tinggi_h, lebar_h] = size(H);

if rem(lebar_h,2) == 0 || rem(tinggi_h,2) == 0
    disp('Lebar dan tinggi H harus ganjil');
    return;
end

m2 = floor(tinggi_h/2);
n2 = floor(lebar_h/2);

% Menentukan ukuran hasil beserta
%    penentu ofset koordinat
if potong == true
    sisi_m2 = m2;
    sisi_n2 = n2;
    G = zeros(tinggi_f - 2 * m2, lebar_f - 2 * n2);
else
    sisi_m2 = 0;
    sisi_n2 = 0;
    G = zeros(size(F));
end
F2=double(F);
for y=m2+1 : tinggi_f-m2
    for x=n2+1 : lebar_f-n2
        % Pelaksanaan korelasi F(baris, kolom)
        jum = 0;
        for p=-m2 : m2
            for q=-n2 : n2
                jum = jum + H(p+m2+1,q+n2+1) * ...
                      F2(y+p, x+q);
            end
        end  
        G(y - sisi_m2, x - sisi_n2) = jum;
    end
end
if pembulatan == true
    G = uint8(G);
end
end    %akhir fungsi

H1 = [-1 -1 2; -1 2 -1 ; 2 -1 -1];
img = imread('C:\image\kotak.png');
G = deteksi(img, H1);
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow(G,[0 1])

H1 = [-1 -1 -1; 2 2 2; -1 -1 -1];
img = imread('C:\image\kotak.png');
G = deteksi(img, H1);
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow(G,[0 1])

H1 = [-1 2 -1; -1 2 -1;-1 2 -1];
img = imread('C:\image\kotak.png');
G = deteksi(img, H1);
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow(G,[0 1])

H1 = [2 -1 -1; -1 2 -1;-1 -1 2];
img = imread('C:\image\kotak.png');
G = deteksi(img, H1);
subplot(1,2,1);imshow(img)
subplot(1,2,2);imshow(G,[0 1])



Program derau gaussian dengan fungsi
==================================================
function [g] = gaussian(f, sigma, mu)
%    g        = Menghasilkan citra yang telah diberi derau menggunakan gaussian.
%    f        = citra masukan berskala keabuan
%    sigma = standar deviasi fungsi gaussian
%    mu     = rerata fungsi Gaussian
if nargin < 3
    mu = 0;         % Nilai bawaan mu
end
if nargin < 2
    sigma = 1;      % Nilai bawaan standar deviasi
end
[m, n] = size(f);
g = double(f);
for i=1 : m
    for j=1 : n
        derau = randn * sigma + mu;
        g(i,j)  = round(f(i, j) + derau);  
        if g(i,j) >= 255
            g(i,j) = 255;
        elseif g(i,j) <= 0
            g(i,j) = 0;
        end
    end
end
g = uint8(g);
end   %akhir fungsi
f = imread('c:\image\kartun.tif');
g = gaussian(f, 150);
subplot(1,2,1);imshow(f), title('citra masukan')
subplot(1,2,2);imshow(g), title('citra keluaran')

Program garam dan merica dengan fungsi
=================================
function [g] = gamer(f, probabilitas)
if nargin < 2
    probabilitas = 0.05;        % Nilai bawaan
end;
[m, n] = size(f);
g = double(f);
for i=1 : m
    for j=1 : n
        nilai_acak = rand;
        if nilai_acak <= probabilitas / 2
            g(i,j) = 0;
        elseif (nilai_acak > probabilitas / 2) && ...
               (nilai_acak <= probabilitas)
            g(i,j) = 255;
        end
    end
end
g = uint8(g);
end   %akhir fungsi
f = imread('c:\image\boneka.tif');
g = gamer(f, 0.05);
subplot(1,2,1);imshow(f), title('citra masukan')
subplot(1,2,2);imshow(g), title('citra keluaran')





Sabtu, 15 Juli 2017

PROG MELIHAT WARNA RGB

salam hangat teman,
bertemu lagi dengan saya Rosmawi.
kali ini saya akan membagikan sebuah program citra digital
tentang melihat warna RGB (red, green dan blue )

berikut ini adalah bentuk program dan gambar yang dihasilkan dengan menggunakan aplikasi OCTAVE

%program melihat warna rgb
%
Y=imread('c:\image\MAWI 1.jpg');
X=imread('c:\image\MAWI 1.jpg');
X(:,:,1)=2 * X(:,:,1);
subplot(1,2,1);imshow(Y)%bentuk gambar original
subplot(1,2,2);imshow(X)%bentuk gambar yang sudah di rubah

%program melihat warna rgb
%rgb
%
Y=imread('c:\image\MAWI 1.jpg');
X=imread('c:\image\MAWI 1.jpg');
X(:,:,2)=2 * X(:,:,2);
subplot(1,2,1);imshow(Y)
subplot(1,2,2);imshow(X)

%program melihat warna rgb
%rgb sepia
%
A=imread('c:\image\MAWI 1.jpg');
B=imread('c:\image\MAWI 1.jpg');
B(:,:,3)=2 * B(:,:,3);
subplot(1,2,1);imshow(A)
subplot(1,2,2);imshow(B)

 RGB BLUE
 RGB GREEN
RGB RED



kode program mengubah citra berwarna ke citra abu-abu

img=imread('c:\image\MAWI 1.jpg');
x=uint8(0.2989 * double(img(:,:,1))...
 + 0.5870 *double(img(:,:,2)) + 0.1141 *double(img(:,:,3)));
subplot(2,2,1);imshow(img),title('Rosmawi')
subplot(2,2,2);imshow(x),title('Rosmawi Keluaran')

kode program mengetahui susunan warna pada citra

 a=imread('c:\image\MAWI 1.jpg');
 red   =a(:,:,1);
 green=a(:,:,2);
 blue  =a(:,:,3);
 subplot(2,2,1);imshow(a),title('Masukan empat bola')
 subplot(2,2,2);imshow(red),title('empat bola merah')
 subplot(2,2,3);imshow(green),title('empat bola hijau')
 subplot(2,2,4);imshow(blue),title('empat bola biru')


program histogram citra keabuan
=============================
img=imread('c:\image\boneka.tif');
[jum_baris,jum_kolom]=size(img);
histogram=zeros(256,1);
for baris=1 : jum_baris
for kolom=1 : jum_kolom
 histogram(img(baris,kolom) + 1) = ...
 histogram(img(baris,kolom) + 1) + 1;
end
end
horijontal=(0:255) ;
bar(horijontal,histogram);
subplot(1,2,1);imshow(img)
subplot(1,2,2);bar(horijontal,histogram)


program pemotongan aras keabuan (menghilangkan derau)
================================================
function [img] = potong(citra,f1,f2)
img=imread(citra);   
[jum_baris,jum_kolom]=size(img);
for baris=1 : jum_baris
for kolom=1 : jum_kolom
 if img(baris, kolom ) <=f1 
 img(baris,kolom)=0;
 end
  if img(baris,kolom) >=f2 
  img(baris,kolom)=255;
  end
end
end
end   %akhir fungsi
h=potong('c:\image\daun.tif',30,140);
imshow(h)
p=imread('c:\image\daun.tif');
subplot(1,2,1);imshow(p)
subplot(1,2,2);imshow(h)


PROGRAM CITRA BERWANA DAN KECERAHAN

salam hangat teman,
bertemu lagi dengan saya Rosmawi.
kali ini saya akan membagikan sebuah program citra digital
tentang citra berwarna dan kecerahan

berikut ini adalah bentuk program dan gambar yang dihasilkan dengan menggunakan aplikasi OCTAVE

Program Citra Berwarna

%program citra berwarna dll
%menampilkan gambar berwarna
%menampilkan gambar tidak berwarna
%menampilkan gambar tidak berwarna
%menampilkan gambar tidak berwarna
%
a=imread('c:\image\MAWI 1.jpg');
 red=a(:,:,1);
 green=a(:,:,2);
 blue=a(:,:,3);
 subplot(2,2,1);imshow(a),title('empat bola')
 subplot(2,2,2);imshow(red),title('empat bola merah')
 subplot(2,2,3);imshow(green),title('empat bola hijau')
 subplot(2,2,4);imshow(blue),title('empat bola biru')

%program menampilkan kererahan gambar
% program ini menghasilkan gambar
%original
%dicerahkan dengan prog citra
%dan dicerahkan lagi
%
%
x=imread('c:\image\MAWI 1.jpg');
z=x + 80 ;
subplot(1,2,1);imshow(x)
subplot(1,2,2);imshow(z)
y=2.5 * x;
subplot(2,2,1);imshow(x)
subplot(2,2,1);imshow(x)
subplot(2,2,2);imshow(z)
subplot(2,2,3);imshow(y)
figure(1);imshow(x)
figure(1);imshow(x)
figure(2);imshow(z)
figure(3);imshow(y)

"keterangan tanda % adalah sebagai pemberitahuan aja, tidak dimasukan kedalam programpun tidaka ada masalah. program akan tetap berjalan"

nah nampak jelaskan perbedaan dari gambar diaas...
ini adalah gambar citra kecerahan

sekian dari saya,

salam
Rosmawi


Jumat, 14 Juli 2017

PROGRAM PENGGABUNGAN CITRA

PROGRAM CITRA
penggabungan 6 scrip dijadikan 1 tampilan gambar CITRA

function [G] = roberts(F)
%pariabel dari semua ini harus berbeda jika
%untuk menampilkan keseluruhan gambar
[m, n] = size(F);

F=double(F);
for y=1 : m-1
    for x=1 : n-1
     
        G(y, x) = sqrt((F(y,x)-F(y+1,x+1))^2 + ...
                       (F(y+1,x)-F(y,x+1))^2) ;
    end
end
G = uint8(G);
end  %akhir fungsi

img = (imread('C:\Image\lena128.tif'));
G = roberts(img);


%

function [g] = roberts(f)
[jum_baris, jum_kolom] = size(f);
f=double(f);
for y=1 : jum_baris-1
    for x=1 : jum_kolom-1
        g(y, x) = sqrt((f(y,x)-f(y+1,x+1))^2 + ...
                       (f(y+1,x)-f(y,x+1))^2) ;
    end
end
g = uint8(g);
end  %akhir fungsi
f = imread('c:\image\boneka.tif');
g = roberts(f);


%

function [j] = freichen(k)
% FREICHEN Pemerolehan tepi objek pada citra F
%     melalui operator Frei-Chen
%     Hasil: citra G
[m, n] = size(k);
akar2 = sqrt(2);
k=double(F);
G=zeros(m,n);
for y=2 : m-1
    for x=2 : n-1
        j(y, x) = sqrt(...
             (k(y-1,x+1)+akar2*k(y,x+1)+k(y+1,x+1) - ...
             k(y-1,x-1)-k(y,x-1)-k(y+1,x-1))^2 + ...
             (k(y-1,x-1)+akar2*F(y-1,x)+k(y-1,x+1) - ...
             k(y+1,x-1)-akar2*k(y+1,x)-k(y+1,x+1))^2) ;
    end
end
j = uint8(j);
end   %akhir fungsi
img = imread('c:\image\lena128.tif');
j = prewitt(img);


%

function [d] = prewitt(c)
[jum_baris, jum_kolom] = size(c);
c=double(c);
d=zeros(jum_baris,jum_kolom);
for y=2 : jum_baris-1
    for x=2 : jum_kolom-1
        d(y, x) = sqrt((c(y-1,x-1) + c(y,x-1) + c(y+1,x-1) - ...
             c(y,x) - c(y,x+1) - c(y+1,x+1))^2 + ...
             (c(y+1,x-1)+ c(y+1,x) + c(y+1,x+1) - ...
             c(y-1,x-1) - c(y-1,x) - c(y-1,x+1))^2) ;
    end
end
d = uint8(d);
end    %akhir fungsi
c = imread('c:\image\boneka.tif');
d = prewitt(c);

%%

function [h] = sobel(i)
[m, n] = size(i);
i=double(i);
h=zeros(m,n);
for y=2 : m-1
    for x=2 : n-1
        h(y, x) = sqrt(...
             (i(y-1,x+1)+2*i(y,x+1)+i(y+1,x+1) - ...
             i(y-1,x-1)-i(y,x-1)-i(y+1,x-1))^2 + ...
             (i(y-1,x-1)+2*i(y-1,x)+i(y-1,x+1) - ...
             i(y+1,x-1)-2*i(y+1,x)-i(y+1,x+1))^2) ;
    end
end
h = uint8(h);
end %akhir fungsi
img = imread('c:\image\lena128.tif');
h = prewitt(img);

%%

img = imread('c:\image\lena128.tif');
Y=img;
[m, n] = size(Y);
X=zeros(m,n);
Y=double(Y);
for y=2 : m-1
    for x=2 : n-1
        X(y, x) = 8 * Y(y,x) - ...
             (Y(y-1,x)+ Y(y,x-1)+Y(y,x+1)+Y(y+1,x) + ...
              Y(y-1,x-1)+ Y(y-1,x+1)+Y(y+1,x-1)+Y(y+1,x+1));
    end
end
X = uint8(X);


subplot(6,2,1);imshow(img) % 6 adalah tampilan 6 gambar
subplot(6,2,2);imshow(G) % 2 adalah tampilan perbandingan 2 gambar
subplot(6,2,3);imshow(f)
subplot(6,2,4);imshow(g)
subplot(6,2,5);imshow(img)
subplot(6,2,6);imshow(j)
subplot(6,2,7);imshow(c)
subplot(6,2,8);imshow(d)
subplot(6,2,9);imshow(img)
subplot(6,2,10);imshow(h)
subplot(6,2,11);imshow(img)
subplot(6,2,12);imshow(X)

Gambar yang dihasilkan dari srip diata

demikian untuk program penggabungan 6 coding menjadi 1 

By : rosmawi

Fitur baru paytren

BERIKUT INI FITUR-FITUR YANG AKAN SEGERA DI SEMATKAN DALAM APLIKASI PAYTREN SETELAH PERIZINAN E-MONEY DARI BI DI TERBITKAN 1.Fasilitas Lay...