Tuesday, 25 November 2014

Mencari nilai RGB pada suatu image dengan program Delphi

Untuk mendapatkan nilai R, G dan B pada suatu gambar,. Maka gambar yang akan kita deteksi di munculkan terlebih dahulu sebelum di deteksi,. Dalam mendeteksi ini saya memakai system mencari setiap pixel dari suatu gambar dari kiri ke kanan dan akan kembali ke kiri lagi dengan arah kebawah,. Jadi satu gambar akan di deteksi seluruh nya tanpa kecuali oleh program Delphi 7 ini,. Dari hal diatas maka nilai R, G dan B suatu gambar akan diperlihatkan angkanya sesuai dengan image yang di deteksi nya,. dalam hal ini delphi 7 memanfaat kan komponen image, komponen char, komponen table, komponen button,.

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

type
  TForm1 = class(TForm)
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button1: TButton;
    Chart1: TChart;
    Series1: TLineSeries;
    Label4: TLabel;
    Series2: TLineSeries;
    Series3: TLineSeries;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Button1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
// ini berfungsi untuk mendeteksi nilai R, G dan B pada saat mouse di gerak kan,. Yang di tampilkan di 3 buah table paling bawah
var R, G, B : byte;  // byte integer(nilai)
begin
R:=GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
G:=GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
B:=GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
// dapatkan nilai image dari pixel x,y pada kanvas
// label nilainya tring (bukan angka)
label1.Caption:=inttostr(R);
label2.Caption:=inttostr(G);
label3.Caption:=inttostr(B);

end;

procedure TForm1.Button1Click(Sender: TObject);
// berfungsi untuk mendeteksi secara urut R, G dan B pada suatu image, dalam hal ini bisa di aplikasikan untuk mengukur suatu luasan dalam suatu image..
var R, G, B : byte;
x, y : integer;
begin
for y:=0 to image1.Picture.Bitmap.Height-1 do
begin
series1.Clear;
series2.Clear;
series3.Clear;
for x:=0 to image1.Picture.Bitmap.Width-1 do
begin
R:=GetRValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
G:=GetGValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
B:=GetBValue(Image1.Picture.Bitmap.Canvas.Pixels[x,y]);
label5.Caption:=inttostr(R);
label6.Caption:=inttostr(G);
label7.Caption:=inttostr(B);
series1.AddXY(x,R);
series2.AddXY(x,G);
series3.AddXY(x,B);
Application.ProcessMessages;
sleep(100);
// berfungsi untuk mengatur kecepatan laju dari grafik char yang di pasang dalam Delphi 7
   end;
end;
    end;
end.

0 komentar:

Post a Comment

 
Copyright © . Semesta Alam - Posts · Comments
Theme Template by My World · Powered by Blogger