Delphi ile Opencv : Adding (blending) two images using OpenCV

Opencv’nin şu anki dökümantasyonu opencv öğrenebilmek için yeterli durumdadır. Tıkla

Blending (2 görüntünün iç içe geçmesi düşünülebilir) örneği aynı dökümantasyonda var. Biz bunu delphi ile yapacağız.

Gerekli araçlar:

  1. opencv 2.0
  2. delphisciencelibrary
  3. Delphi 7 veya rad studio

opencv’nin headerlarının (newopencv2.pas) çevrildiği kod ayarlarım şu şekilde, kaynak kod aşağıdadır.

 

 
unit newOpenCv2;

interface

uses windows, sysutils, classes, StdCtrls, graphics,
     Dialogs, math;

const
  //those dlls is installed by opencv2.0 installer
  lib_cv = 'C:\OpenCV2.0\bin\libcv200.dll';
  lib_cxcore = 'C:\OpenCV2.0\bin\libcxcore200.dll';
  lib_highgui = 'C:\OpenCV2.0\bin\libhighgui200.dll';
  lib_cvaux = 'C:\OpenCV2.0\bin\libcvaux200.dll';
  libmpeg = 'C:\OpenCV2.0\bin\libopencv_ffmpeg200.dll';
  lib_ml = 'C:\OpenCV2.0\bin\libml200.dll';
  libselfdef = 'infopencv.dll';

Blending kodu

procedure TForm2.addweightedClick(Sender: TObject);
var
      img1,img2:PIplImage;
      dst1:PIplImage;
      bt:TBitmap;
      alpha:Double;
      beta,input:Double;
      a:Integer;
begin
      alpha:=0.5;
      img1:=cvLoadImage('de.jpg',1);
      img2:=cvLoadImage('op.jpg',1);
      dst1:=cvCreateImage(cvGetSize(img1),8,3);
     //dst:=cvLoadImageM('lena.jpg',1);
      beta:=1-alpha;
      cvAddWeighted(img1,alpha,img2,beta,0.0,dst1);
    // cvSaveImage('sadf.jpg',dst1);
      cvNamedWindow('bb',1);
      cvShowImage('bb',dst1);
      //cvResizeWindow('bb',200,200);
      Image1.Stretch:=True;
      bt:=cvImage2Bitmap(dst1);
      Image1.Picture.Bitmap:= bt;
      Image1.Picture.SaveToFile('aa.jpg');
end;