opencv 图片清晰度检测

opencv 图片清晰度判断代码

读取D盘里面的两张图片,进行清晰度的判别。
阈值可以自行修改

#include <highgui/highgui.hpp>
#include <imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

int main()
{
	Mat imageSource = imread("D:/1.jpg");
	Mat imageGrey;

	cvtColor(imageSource, imageGrey, CV_RGB2GRAY);
	Mat imageSobel;
	Sobel(imageGrey, imageSobel, CV_16U, 1, 1);

	//图像的平均灰度
	double meanValue = 0.0;
	meanValue = mean(imageSobel)[0];

	//double to string
	stringstream meanValueStream;
	string meanValueString;
	meanValueStream << meanValue;
	meanValueStream >> meanValueString;
	meanValueString = "Articulation(Sobel Method): " + meanValueString;
	putText(imageSource, meanValueString, Point(128, 128), CV_FONT_HERSHEY_COMPLEX, 4, Scalar(0, 255, 0), 3);
	namedWindow("Articulation", WINDOW_FREERATIO);
	imshow("Articulation", imageSource);




	Mat iimageSource = imread("D:/2.jpg");
	Mat iimageGrey;

	cvtColor(iimageSource, iimageGrey, CV_RGB2GRAY);
	Mat iimageSobel;
	Sobel(iimageGrey, iimageSobel, CV_16U, 1, 1);

	//图像的平均灰度
	double iimeanValue = 0.0;
	iimeanValue = mean(iimageSobel)[0];

	//double to string
	stringstream iimeanValueStream;
	string iimeanValueString;
	iimeanValueStream << iimeanValue;
	iimeanValueStream >> iimeanValueString;
	iimeanValueString = "iArticulation(Sobel Method): " + iimeanValueString;
	putText(iimageSource, iimeanValueString, Point(128, 128), CV_FONT_HERSHEY_COMPLEX, 4, Scalar(0, 255, 0), 3);
	//照片/添加的文字/左上角坐标/字体/字体大小/颜色/字体粗细
	namedWindow("iArticulation", WINDOW_FREERATIO);
	imshow("iArticulation", iimageSource);


	if (meanValue - 3> iimeanValue)
		printf("超出阈值");
	else
		printf("未超出阈值");
	waitKey();
}

运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面是我做的系统展示平台,有需要的可以下载
https://download.csdn.net/download/qq_46626270/18576814
在这里插入图片描述

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: OpencvSharp 是开源的计算机视觉领域的 C#语言封装库,可以用于图像处理、图像分析、模式识别等领域。扫描图片对比度是图像处理的一个重要应用之一。对比度是指图像中明暗色调变化的大小,即图像中最亮与最暗像素的强度之差。对比度越大,图像中暗部越暗,亮部越亮,反之对比度越小,图像中暗部越明亮,亮部越暗。下面我们来了解 OpencvSharp 如何扫描图片对比度。 OpencvSharp 中提供了很多用于计算对比度的函数,其中最常用的是 cv::equalizeHist 函数。该函数会将输入图像的直方图均衡化,从而增加图像的对比度。具体使用方法如下: 1. 载入图像:Mat img = Cv2.ImRead("image.jpg"); 2. 转为灰度图像:Mat grayImg = new Mat(); Cv2.CvtColor(img, grayImg, ColorConversionCodes.BGR2GRAY); 3. 直方图均衡化:Mat histImg = new Mat(); Cv2.EqualizeHist(grayImg, histImg); 4. 显示图像:Cv2.ImShow("Histogram Equalization", histImg); 通过上述方法,就可以扫描图片对比度并对其进行处理。此外,还可以通过调整对比度参数,更加精细地控制图像的对比度。 ### 回答2: OpenCVSharp是一个C#语言的开源计算机视觉库,它提供了许多图像处理和计算机视觉相关的函数和工具。扫描图像的对比度是一个常见的图像处理需求,OpenCVSharp提供了几种不同的方法来检测和增强图像的对比度。 一种简单的方法是使用直方图均衡化方法。它通过重新分配图像像素值来增强图像的对比度。OpenCVSharp提供了一个名为EqualizeHist的函数,可以用于执行直方图均衡化操作。 另一种更复杂的方法是使用自适应直方图均衡化方法来增强图像的对比度。这种方法是在局部图像块上执行直方图均衡化操作,以保留图像的局部对比度和细节。OpenCVSharp还提供了一个名为CLAHE的函数,可以用于执行自适应直方图均衡化操作。 除了直方图均衡化方法外,还可以使用一些其他的算法和技术来增强图像的对比度,如增强锐度、彩色平衡等。无论采用何种方法,都需要根据具体应用场景选择最合适的算法和参数,以获得最佳的对比度增强效果。 ### 回答3: OpenCvSharp是一个开源计算机视觉库,用于处理图像和视频的编程库,它提供了丰富的图像处理功能,包括的对比度调整。要用OpenCvSharp扫图片对比度,首先需要加载图像,最好是以灰度方式加载,以便更方便地进行对比度调整。然后可以使用equalizeHist()函数对图像进行直方图均衡化来增加对比度。该函数将把灰度图片的像素值分布均衡化到较宽的像素值范围内,进而增加图像的对比度。要调整对比度的范围,可以使用convertScaleAbs()函数来调整图像的亮度和对比度值。使用类似于“Mat dst = src⋅alpha+beta”的公式,可以调整对比度和亮度值。在该公式中,alpha和beta是任选参数,用于调整对比度和亮度,src是源图像,dst是目标图像。除此之外,还可以使用Matplotlib库来可视化图像和对比度的变化,并评估调整结果。OpenCvSharp的函数和类库非常清晰和易于使用,可以根据需要选择合适的函数和方法进行图像对比度调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值