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:
- opencv 2.0
- delphisciencelibrary
- 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;