//-------------------------------------------------------------------------------- void ofxCvColorImage::operator = ( const ofxCvShortImage& _mom ) { // cast non-const, no worries, we will reverse any chages ofxCvShortImage& mom = const_cast<ofxCvShortImage&>(_mom); if( mom.getWidth() == 0 || mom.getHeight() == 0 ){ ofLogError("ofxCvColorImage") << "operator=: source width and/or height are zero:" << mom.getWidth() << " " << mom.getHeight(); return; } if( !bAllocated ){ ofLogNotice("ofxCvColorImage") << "operator=: allocating to match dimensions: " << mom.getWidth() << " " << mom.getHeight(); allocate(mom.getWidth(), mom.getHeight()); } if( matchingROI(getROI(), mom.getROI()) ) { if( cvGrayscaleImage == NULL ) { cvGrayscaleImage = cvCreateImage( cvSize(width,height), IPL_DEPTH_8U, 1 ); } ofRectangle roi = getROI(); setImageROI(cvGrayscaleImage, roi); rangeMap( mom.getCvImage(), cvGrayscaleImage, 0, 65535.0f, 0, 255.0f ); cvCvtColor( cvGrayscaleImage, cvImage, CV_GRAY2RGB ); flagImageChanged(); } else { ofLogError("ofxCvColorImage") << "operator=: region of interest mismatch"; } }
//-------------------------------------------------------------------------------- void ofxCvFloatImage::operator = ( const ofxCvFloatImage& _mom ) { if(this != &_mom) { //check for self-assignment // cast non-const, no worries, we will reverse any chages ofxCvFloatImage& mom = const_cast<ofxCvFloatImage&>(_mom); if( mom.getWidth() == 0 || mom.getHeight() == 0 ){ ofLog(OF_LOG_ERROR, "in =, mom width or height is 0"); return; } if( !bAllocated ){ ofLog(OF_LOG_NOTICE, "in =, allocating to match dimensions"); allocate(mom.getWidth(), mom.getHeight()); } if( matchingROI(getROI(), mom.getROI()) ) { if( getNativeScaleMin() == mom.getNativeScaleMin() && getNativeScaleMax() == mom.getNativeScaleMax() ) { cvCopy( mom.getCvImage(), cvImage, 0 ); } else { rangeMap( mom.getCvImage(), cvImage, mom.getNativeScaleMin(), mom.getNativeScaleMax(), getNativeScaleMin(), getNativeScaleMax() ); } flagImageChanged(); } else { ofLog(OF_LOG_ERROR, "in =, ROI mismatch"); } } else { ofLog(OF_LOG_WARNING, "in =, you are assigning a ofxCvFloatImage to itself"); } }
//-------------------------------------------------------------------------------- void ofxCvColorImage::convertToRange(float min, float max ){ if( !bAllocated ){ ofLogError("ofxCvColorImage") << "convertToRange(): image not allocated"; return; } rangeMap( cvImage, 0,255, min,max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::convertToRange(float min, float max ){ if( !bAllocated ){ ofLog(OF_LOG_ERROR, "in convertToRange, image is not allocated"); return; } rangeMap( cvImage, 0, 255, min, max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::contrastStretch() { if( !bAllocated ){ ofLog(OF_LOG_ERROR, "in contrastStretch, image is not allocated"); return; } double minVal, maxVal; cvMinMaxLoc( cvImage, &minVal, &maxVal, NULL, NULL, 0 ); rangeMap( cvImage, minVal,maxVal, 0,255 ); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::operator = ( const ofxCvShortImage& _mom ) { // cast non-const, no worries, we will reverse any chages ofxCvShortImage& mom = const_cast<ofxCvShortImage&>(_mom); if( matchingROI(getROI(), mom.getROI()) ) { rangeMap( mom.getCvImage(), cvImage, 0, 65535.0f, 0, 255.0f ); flagImageChanged(); } else { ofLog(OF_LOG_ERROR, "in =, ROI mismatch"); } }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::contrastStretch() { if( !bAllocated ){ ofLogError("ofxCvGrayscaleImage") << "contrastStretch(): image not allocated"; return; } double minVal, maxVal; cvMinMaxLoc( cvImage, &minVal, &maxVal, NULL, NULL, 0 ); rangeMap( cvImage, minVal,maxVal, 0,255 ); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvColorImage::operator = ( const ofxCvShortImage& _mom ) { // cast non-const, no worries, we will reverse any chages ofxCvShortImage& mom = const_cast<ofxCvShortImage&>(_mom); if( matchingROI(getROI(), mom.getROI()) ) { if( cvGrayscaleImage == NULL ) { cvGrayscaleImage = cvCreateImage( cvSize(width,height), IPL_DEPTH_8U, 1 ); } ofRectangle roi = getROI(); setImageROI(cvGrayscaleImage, roi); rangeMap( mom.getCvImage(), cvGrayscaleImage, 0, 65535.0f, 0, 255.0f ); cvCvtColor( cvGrayscaleImage, cvImage, CV_GRAY2RGB ); flagImageChanged(); } else { ofLog(OF_LOG_ERROR, "in =, ROI mismatch"); } }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::operator = ( const ofxCvShortImage& _mom ) { // cast non-const, no worries, we will reverse any chages ofxCvShortImage& mom = const_cast<ofxCvShortImage&>(_mom); if( mom.getWidth() == 0 || mom.getHeight() == 0 ){ ofLog(OF_LOG_ERROR, "in =, mom width or height is 0"); return; } if( !bAllocated ){ ofLog(OF_LOG_NOTICE, "in =, allocating to match dimensions"); allocate(mom.getWidth(), mom.getHeight()); } if( matchingROI(getROI(), mom.getROI()) ) { rangeMap( mom.getCvImage(), cvImage, 0, 65535.0f, 0, 255.0f ); flagImageChanged(); } else { ofLog(OF_LOG_ERROR, "in =, ROI mismatch"); } }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::operator = ( const ofxCvShortImage& _mom ) { // cast non-const, no worries, we will reverse any changes ofxCvShortImage& mom = const_cast<ofxCvShortImage&>(_mom); if( mom.getWidth() == 0 || mom.getHeight() == 0 ){ ofLogError("ofxCvGrayscaleImage") << "operator=: source width and/or height are zero:" << mom.getWidth() << " " << mom.getHeight(); return; } if( !bAllocated ){ ofLogNotice("ofxCvGrayscaleImage") << "operator=: allocating to match dimensions: " << mom.getWidth() << " " << mom.getHeight(); allocate(mom.getWidth(), mom.getHeight()); } if( matchingROI(getROI(), mom.getROI()) ) { rangeMap( mom.getCvImage(), cvImage, 0, 65535.0f, 0, 255.0f ); flagImageChanged(); } else { ofLogError("ofxCvGrayscaleImage") << "operator=: region of interest mismatch"; } }
//-------------------------------------------------------------------------------- void ofxCvFloatImage::operator = ( const ofxCvFloatImage& _mom ) { if(this != &_mom) { //check for self-assignment // cast non-const, no worries, we will reverse any chages ofxCvFloatImage& mom = const_cast<ofxCvFloatImage&>(_mom); if( matchingROI(getROI(), mom.getROI()) ) { if( getNativeScaleMin() == mom.getNativeScaleMin() && getNativeScaleMax() == mom.getNativeScaleMax() ) { cvCopy( mom.getCvImage(), cvImage, 0 ); } else { rangeMap( mom.getCvImage(), cvImage, mom.getNativeScaleMin(), mom.getNativeScaleMax(), getNativeScaleMin(), getNativeScaleMax() ); } flagImageChanged(); } else { ofLog(OF_LOG_ERROR, "in =, ROI mismatch"); } } else { ofLog(OF_LOG_WARNING, "in =, you are assigning a ofxCvFloatImage to itself"); } }
//-------------------------------------------------------------------------------- void ofxCvColorImageAlpha::convertToRange(float min, float max ){ rangeMap( cvImage, 0,255, min,max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::convertToRange(float min, float max ){ rangeMap( cvImage, 0, 255, min, max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvGrayscaleImage::contrastStretch() { double minVal, maxVal; cvMinMaxLoc( cvImage, &minVal, &maxVal, NULL, NULL, 0 ); rangeMap( cvImage, minVal,maxVal, 0,255 ); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvFloatImage::convertToRange(float min, float max ){ rangeMap( cvImage, scaleMin,scaleMax, min,max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvFloatImage::contrastStretch() { double minVal, maxVal; cvMinMaxLoc( cvImage, &minVal, &maxVal, NULL, NULL, 0 ); rangeMap( cvImage, minVal,maxVal, scaleMin,scaleMax ); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvShortImage::convertToRange(float min, float max ){ rangeMap( cvImage, 0,65535, min,max); flagImageChanged(); }
//-------------------------------------------------------------------------------- void ofxCvShortImage::contrastStretch() { double minVal, maxVal; cvMinMaxLoc( cvImage, &minVal, &maxVal, NULL, NULL, 0 ); rangeMap( cvImage, minVal,maxVal, 0,65535 ); flagImageChanged(); }