Open CV Alphakanal zuweisen
-
Hallo Zusammen,
ich möchte bei einem Bild einen Alphakanal zuweisen. Ich habe auch eine Funktion gefunden. Mit cvMerge kann man einzelne Kanäle zu einem Bild zusammensetzen. Ich habe ein kleines Testprogramm geschrieben, welches aber immer beim ausführen unterbricht, obwohl alle benötigten Parameter übergeben worden sind.
Ziel ist es, nachdem der Alphakanal zugewiesen worden ist, nur diesen Bereich des Bildes auszuwerten.
Gibt es sonst noch andere Möglichkeiten in OpenCV?#include "cv.h" #include "highgui.h" using namespace cv; int main( int argc, char** argv ) { // loadimage IplImage *img= cvLoadImage("scheibe.jpg", CV_LOAD_IMAGE_GRAYSCALE); CvSize imgSize = cvGetSize( img ); // check for image if( img == 0 ) { fprintf( stderr, "Cannot load file %s!\n", argv[1] ); return 1; } // Include mask as alphachannel IplImage *imgROIMasked = cvCreateImage( imgSize, 8, 1); cvZero(imgROIMasked); IplImage *imgBlack = cvCreateImage( imgSize, 8, 1); cvZero(imgBlack); IplImage *imgMask = cvCreateImage( imgSize, 8, 1); cvZero(imgBlack); cvMerge(img, imgBlack, imgBlack, imgMask, imgROIMasked); //create window cvNamedWindow( "image", CV_WINDOW_AUTOSIZE ); // show image cvShowImage( "image", imgROIMasked); cvWaitKey(0); cvDestroyWindow( "image" ); cvReleaseImage( &imgROIMasked ); return 0; }
-
Hab noch ein bisschen ausprobiert...wenn ich bei cvMerge den Alphakanal als NULL übergebe, funktioniert es.