Я совершенно новый в openCV, но застрял в одном месте.Как нормализовать изображение в openCV?
У меня есть изображение с серой шкалой, но мне нужно нормализовать это изображение. например, у меня есть cv :: mat image у него может быть матрица, содержащая некоторые значения и каждый индекс. Поскольку у меня есть серое изображение, оно может содержать только 1 значение за один индекс. Теперь мне нужно разделить каждое значение на 255.
Есть ли какой-либо метод или средство в openCV на C++. Этот сценарий называется нормировкой в openCV.
cv::Mat originalMat = [OSInference cvMatFromUIImage:imgBeforeProccessing];
cv::Mat img2;
cv::cvtColor(originalMat, img2,CV_BGR2GRAY);
cv::resize(img2, img2, cv::Size(128, 128), 0, 0, CV_INTER_CUBIC);
cv::Mat img3;
Теперь, как нормализовать (означает деление каждого значения в матрице на 255)?
Преобразования матого изображения в IOS изображения следующего
+ (UIImage *)UIImageFromCVMat:(cv::Mat)cvMat{
NSData *data = [NSData dataWithBytes:cvMat.data length:cvMat.elemSize()*cvMat.total()];
CGColorSpaceRef colorspace;
if (cvMat.elemSize() == 1) {
colorspace = CGColorSpaceCreateDeviceGray();
}else{
colorspace = CGColorSpaceCreateDeviceRGB();
}
CGDataProviderRef provider = CGDataProviderCreateWithCFData((__bridge CFDataRef)data);
// Create CGImage from cv::Mat
CGImageRef imageRef = CGImageCreate(cvMat.cols, cvMat.rows, 8, 8 * cvMat.elemSize(), cvMat.step[0], colorspace, kCGImageAlphaNone | kCGBitmapByteOrderDefault, provider, NULL, false, kCGRenderingIntentDefault);
// get uiimage from cgimage
UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
CGDataProviderRelease(provider);
CGColorSpaceRelease(colorspace);
return finalImage;
}
посмотреть на [это] (http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html?highlight=mean#normalize) –
Нормализация означает ** мин ** -> 0 и ** max ** -> 1 –