Langsung ke konten utama

Membuat Histogram RGB Gambar dengan Delphi 7

Assalamu'aikum. Wr. Wb
Saya hari ini ingin menunjukkan cara membuat histogram RGB gambar dengan Delphi 7 untuk memenuhi tugas mata kuliah Program Komputasi Fisika. Tugas tersebut diberikan pada hari Jum'at, 17 November 2017.
Untuk membuat histogram RGB gambar, diperlukan 1 Chart dengan 3 series, 1 image, 2 button, 3 label, dan 1 open dialog. Mungkin kalian ada yang bertanya-tanya, kenapa sih buat histogram RGB gambar? Sebelum menjawabnya kita harus tahu pengertian histogram. Kita tahu bahwa histogram  adalah representasi grafis untuk distribusi warna dari citra digital atau menggambarkan penyebaran nilai-nilai intensitas pixel dari suatu citra atau bagian tertentu di dalam citra. Dari sebuah histogram dapat diketahui frekuensi kemunculan relatif dari intensitas pada citra, kecerahan, dan kontas dari sebuah gambar. Dan juga agar kita tahu persebaran warna merah, hijau dan biru yang ada pada gambar.
Pertama, Buat susunan seperti gambar dibawah ini:


Kedua, isi kode program dibawah ini :

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,jpeg, StdCtrls, ExtCtrls, TeEngine, Series, TeeProcs, Chart;

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TLineSeries;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  HistogramR,HistogramG,HistogramB:array[0..256] of integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var BMP1:Tbitmap;
    JPG1:TJPEGImage;
    i,j,k :integer;
    warna : Tcolor;
    R,G,B : word;
begin
    BMP1:=Tbitmap.Create;
    JPG1:=TjpegImage.Create;

    if OpenDialog1.Execute then
       jpg1.LoadFromFile(OpenDialog1.FileName);
      
    BMP1.Assign(JPG1);
    for k:=1 to 256 do
    begin
       HistogramR[k]:=0;
       HistogramG[k]:=0;
       HistogramB[k]:=0;
    end;


        for j:=1 to BMP1.Height-1 do
        begin
           for i:=1 to BMP1.Width-1 do
           begin
             warna :=BMP1.Canvas.Pixels[i,j];
             R:=GetRValue(warna);
             G:=GetGValue(warna);
             B:=GetBValue(warna);
             HistogramR[R]:=HistogramR[R]+1;
             HistogramG[G]:=HistogramG[G]+1;
             HistogramB[B]:=HistogramB[B]+1;
           end;
        end;
    Image1.Picture.Assign(BMP1);
    BMP1.Free;
    Jpg1.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
  Series1.Clear;
  Series2.Clear;
  Series3.Clear;
   for i:=1 to 256 do
   begin
       Series1.AddXY(i,HistogramR[i],'',clRed);
       Series2.AddXY(i,HistogramG[i],'',clgreen);
       Series3.AddXY(i,HistogramB[i],'',clblue);
   end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
  var warna:Tcolor;
      R,G,B : word;
begin
   warna:=Image1.Canvas.Pixels[x,y];
   R:=GetRValue(warna);
   G:=GetGValue(warna);
   B:=GetBValue(warna);
   Label1.Caption:='R : '+inttostr(R);
   Label2.Caption:='G : '+inttostr(G);
   Label3.Caption:='B : '+inttostr(B);
end;

end.

Ketiga, klik Button 1 dan Button 2.
Keempat, klik Run. Dan akan muncul tampilan seperti ini


Kelima, klik "Open", lalu pilih gambar yang kamu inginkan.
Keenam, klik "Ok"
Setelah itu akan muncul grafik histogram RGB dari gambar tersebut. Berikut ini adalah gambarnya :

Sekian dari saya, semoga bisa bermanfaat bagi anda.
Wassalamu'alaikum. Wr. Wb

Komentar

Postingan populer dari blog ini

#1 Project Menyembuhkan Luka & Memaafkan

Beberapa luka batin tak jarang disebabkan oleh orang terdekat, seperti keluarga, teman, atau bahkan sahabat. Entah disebabkan oleh kesalahpahaman atau kurangnya komunikasi. Begitu pula yang terjadi kepada saya sekitar 6 hari yang lalu. Saya terlalu berlarut dalam kesedihan karena telah ditinggalkan oleh seseorang yang pernah berkomitmen untuk menjalin hubungan ke jenjang yang lebih serius. Hal tersebut yang mungkin penyebab terjadinya adanya kesalahpahaman antara saya dengan ayah. Malam itu, saya dan ibu sedang membicarakan dia yang telah menyakiti hati saya, sebut saja si X. Tanpa sadar ayah mendengar cerita kami. Beliau pun langsung menegur ibuku yang terkesan malah menyulut api amarahku kepada si X. Selain itu, ayah pun memarahiku karena terlalu larut dalam kesedihan dan akhir-akhir ini terlalu sering marah. Beliau juga menyalahkan saya atas semua yang terjadi. Padahal saya jelas-jelas tak bersalah, justru perbuatan si X lah yang salah. Hati saya sangat terluka ketika mende...

Patah Hati

Patah hati mengajarkan manusia agar lebih menghargai perasaan orang lain. Perasaan yang mencurahkan sebuah ketulusan dalam dirinya. Ketulusan yang dilandasi dengan komitmen dan syarat yang saling disetujui satu sama lain. Komitmen dan syarat hadir agar mereka bisa saling hidup berdampingan seumur hidup walau banyak badai yg akan hadir. Terima kasih luka. Kamu mengajarkanku artinya menghargai sebuah ketulusan cinta seseorang. Melangkah perlahan-lahan walau tertatih. Luka segeralah luruh dari hati Agar kelak tidak menimbulkan benci Terima kasih untukmu juga yg mengajarkanku perbedaan antara ketulusan dan kepalsuan. Terima kasih untukmu juga yg mengajarkanku arti sahabat yang sesungguhnya. Terima kasih juga karena sudah membuat saya, ayah & ibu meneteskan air mata. Semoga kalian bahagia tanpa jeda Surabaya, 27 September 2020 Dezy Zahrotul Istiqomah Nurdin #patahhati #lukahati #komitmen #cintapalsu #sahabat #cinta #ketulusancinta #surabaya #renunganhati #kuat #bukanpuisi...

Buku "Heal Yourself" - Novie Ocktaviane Mufti

Judul Buku : Heal Yourself Penulis : Novie Ocktaviane Mufti Penerbit : CV. IDS Tebal buku : XVII + 268 Buku "Heal Yourself" ini membantu kamu untuk berdamai dengan luka & memberi pemahaman pada setiap masalah dari sisi psikologi Islam. Bahasa yg ringan dan mudah dipahami akan memudahkan pembaca menerapkannya dlm proses penyembuhan luka. Buku ini bisa menjadi teman berjuangmu untuk menyembuhkan luka 🤗. Setelah membaca buku ini, jadi merasa bahwa masih ada orang yg memahami perasaan & membaca sudut pandang pemikiran saya. Sehingga saya menjadi lebih percaya diri untuk segera bangkit dari luka. Tulisan yang paling membekas di hati saya ada di halaman 133 sampai 141. Selain itu, penulis juga menjelaskan setiap persoalan & emosi dari segi psikologi Islam. Hal itu semakin menambah wawasan saya ttg psikologi Islam. Oh iya, penulis juga memberikan tips untuk berdamai dengan luka lho🤗 Buku ini sangat saya rekomendasikan untuk dibaca agar kita bisa memahami s...