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.


Anmelden zum Antworten