本文主要是介绍图像非人为马赛克检测代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在做图片清晰度检测时,对非人为马赛克的图片一直找不到好的检测方法,突然临机一动想到角点检测,运行之后,效果还非常不错,分享这段代码给大家。
int iCheckMosaicImage(Mat& srcFrame)
{Mat srcFrameGray;int l_iTotalCorner = 0;cvtColor(srcFrame, srcFrameGray, CV_BGR2GRAY);cornerHarris(srcFrameGray, srcFrameGray, 2, 3, 0.04);threshold(srcFrameGray, srcFrameGray, 0.010, 255, CV_THRESH_BINARY);//imshow("srcFrameGray", srcFrameGray);int l_iRow = srcFrameGray.rows; int l_iCol = srcFrameGray.cols; for (int i = 0; i < l_iRow; i++){for (int j = 0; j < l_iCol; j++){if (srcFrameGray.at<float>(i, j) == 255)//值255为角点{l_iTotalCorner++;}}}return l_iTotalCorner;}
效果如下 l_iTotalCorner 值越大,非人为马赛克越严重:
这篇关于图像非人为马赛克检测代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!