Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Error : assertion failed (depth ==5 || depth==6) in cv::pow,fill c:\opencv\...\mathfuncs.cpp

Getting assertion failed error ' cv::pow(sigma, double(0.5), sigma); // sigma = sqrt(sigma)' in this line.

    // compute sigma
Mat sigma = im.size(), CV_64FC1, 1);
sigma = im.mul(im); 
GaussianBlur(sigma, sigma, Size(7, 7), 1.166); // apply gaussian blur
subtract(sigma, mu_sq, sigma); // sigma = sigma - mu_sq
cv::pow(sigma, double(0.5), sigma); // sigma = sqrt(sigma)
add(sigma, Scalar(1.0/255), sigma); // to avoid DivideByZero Exception
Mat structdis(im.size(), CV_64FC1, 1);
subtract(im, mu, structdis); // structdis = im - mu
divide(structdis, sigma, structdis

Code from this website