Opencv kullanıyorum ve başka bir resmin bir kısmından resim oluşturmak istiyorum.openCV C++ ile görüntünün bir bölümünü kopyalayın
Bunu yapan bir işlev bulamadım. Bu nedenle, görüntü pikselini piksele kopyalamayı içeren, ancak boş bıraktığım sonucu almadığım için Fikirlerimi uygulamaya çalışıyorum.
herhangi biri başka bir fikir
Kodu vardır:
#include "cv.h"
#include "highgui.h"
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
int main(int argc,char** argv) {
IplImage * img =0;
uchar *data;
int i,j,k;
int height,width,widthStep,nChannels;
img=cvLoadImage(argv[1],3);
height =img->height;
width = img->width;
widthStep= img->widthStep;
nChannels = img->nChannels;
data=(uchar*)img->imageData;
IplImage* img1=cvCreateImage(cvSize(height/2,width/2),IPL_DEPTH_8U,nChannels);
for(i=0;i<height/2;i++){
for(j=0;j<width/2;j++){
for(k=0;k<3;k++){
img1->imageData[i*widthStep+j*nChannels]=data[i*widthStep+j*nChannels];
}
}
}
cvShowImage("image_Originale2",img1);
cvWaitKey(0);
cvReleaseImage(&img);
return 0;
}
durum farklıdır; Eski OpenCV 'yeni' C++ api karşı. Aslında, eski IplImage öğeleri OpenCV 3'te amortismana uğrayacak ve bunu okuyan herkese yeni cv :: Mat stiline geçmesini tavsiye ediyorum. – TimZaman