【发布时间】:2017-07-05 03:19:52
【问题描述】:
我是 openCV 的新手,一直卡在某个地方。
我有一个灰度图像,但我需要标准化这个图像。例如:我有一个 cv::mat 图像,它可能有一个包含一些值和每个索引的矩阵。由于我有灰色图像,因此每个索引可能仅包含 1 个值。现在我需要将每个值除以 255。
在 C++ 中的 openCV 中是否有任何可用的方法或工具? 对于这种情况,我相信我要使用的方法在 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)??
我正在将 mat 图像转换为 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;
}
【问题讨论】:
-
看THIS
-
归一化意味着 min -> 0 和 max -> 1
标签: c++ ios objective-c opencv