Note that there are some explanatory texts on larger screens.

plurals
  1. POBad argument (image must have CV_8UC3 type) in grabCut
    primarykey
    data
    text
    <p>I am using grabCut algorithm using the following code:</p> <pre><code>cv::Mat img=[self cvMatFromUIImage:image]; cv::Rect rectangle(10,10,300,150); cv::Mat result; // segmentation (4 possible values) cv::Mat bgModel,fgModel; // the models (internally used) // GrabCut segmentation cv::grabCut(img, // input image result, // segmentation result rectangle, // rectangle containing foreground bgModel,fgModel, // models 3, // number of iterations cv::GC_INIT_WITH_RECT); // use rectangle // Get the pixels marked as likely foreground cv::compare(result,cv::GC_PR_FGD,result,cv::CMP_EQ); // Generate output image cv::Mat foreground(img.size(),CV_8UC3, cv::Scalar(255,255,255)); result=result&amp;1; img.copyTo(foreground, result); result); image=[self UIImageFromCVMat:foreground]; ImgView.image=image; </code></pre> <p>The code to convert <code>UIImage</code> to <code>Mat image</code> looks like this </p> <pre><code>- (cv::Mat)cvMatFromUIImage:(UIImage *)imge { CGColorSpaceRef colorSpace = CGImageGetColorSpace(imge.CGImage); CGFloat cols = imge.size.width; CGFloat rows = imge.size.height; cv::Mat cvMat(rows, cols, CV_8UC4); // 8 bits per component, 4 channels CGContextRef contextRef = CGBitmapContextCreate( cvMat.data, // Pointer to data cols, // Width of bitmap rows, // Height of bitmap 8, // Bits per component cvMat.step[0], // Bytes per row colorSpace, // Colorspace kCGImageAlphaNoneSkipLast | kCGBitmapByteOrderDefault); // Bitmap info flags CGContextDrawImage(contextRef, CGRectMake(0, 0, cols, rows), imge.CGImage); CGContextRelease(contextRef); CGColorSpaceRelease(colorSpace); return cvMat; } </code></pre> <p>But I got the error</p> <blockquote> <p>OpenCV Error: Bad argument (image must have CV_8UC3 type) in grabCut.</p> </blockquote> <p>If I change <code>cv::Mat cvMat(rows, cols, CV_8UC4);</code> line to <code>cv::Mat cvMat(rows, cols, CV_8UC3);</code> then I get <code>&lt;Error&gt;: CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaNoneSkipLast; 342 bytes/row.</code>.</p> <p>I am confused here for what to do.</p> <p>Any help please</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload