gpt4 book ai didi

ios - 带有拉普拉斯公式的 OpenCV 在 iOS 中检测图像是否模糊

转载 作者:可可西里 更新时间:2023-11-01 04:29:49 25 4
gpt4 key购买 nike

提前感谢您的帮助。

我进行了大量的研发和搜索,但我找不到任何检测模糊图像或不检测模糊图像的解决方案。

我用过这个https://github.com/BloodAxe/OpenCV-Tutorial并且对于模糊检测使用拉普拉斯公式但无法在图像中进行模糊检测

-(void) checkForBurryImage:(UIImage *) image {

cv::Mat matImage = [image toMat];
cv::Mat matImageGrey;
cv::cvtColor(matImage, matImageGrey, CV_BGRA2GRAY);

cv::Mat dst2 =[image toMat];
cv::Mat laplacianImage;
dst2.convertTo(laplacianImage, CV_8UC1);
cv::Laplacian(matImageGrey, laplacianImage, CV_8U);
cv::Mat laplacianImage8bit;
laplacianImage.convertTo(laplacianImage8bit, CV_8UC1);
//-------------------------------------------------------------
//-------------------------------------------------------------
unsigned char *pixels = laplacianImage8bit.data;
//-------------------------------------------------------------
//-------------------------------------------------------------
// unsigned char *pixels = laplacianImage8bit.data;
int maxLap = -16777216;

for (int i = 0; i < ( laplacianImage8bit.elemSize()*laplacianImage8bit.total()); i++) {
if (pixels[i] > maxLap)
maxLap = pixels[i];
}

int soglia = -6118750;

printf("\n maxLap : %i",maxLap);


if (maxLap < soglia || maxLap == soglia) {
printf("\n\n***** blur image *****");
}else
printf("\nNOT a blur image"); }

我使用了与 Android 相同的代码并且它工作正常,但在 iOS 中,它总是给我积极的值(value)所以我认为它不起作用,

所以请给我想法或链接或任何建议。

最佳答案

使用这个:

Laplacian(gray, laplacianImage, CV_64F);
Scalar mean, stddev; // 0:1st channel, 1:2nd channel and 2:3rd channel
meanStdDev(laplacianImage, mean, stddev, Mat());
double variance = stddev.val[0] * stddev.val[0];

double threshold = 2900;

if (variance <= threshold) {
// Blurry
} else {
// Not blurry
}

关于ios - 带有拉普拉斯公式的 OpenCV 在 iOS 中检测图像是否模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24080123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com