#include <cmath>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
const int kvalue = 15;//双边滤波邻域大小
const double PI = 3.14;//圆周率
int graylevel(Mat image, Mat dst, Point cen, int r)//求取圆形区域内的平均灰度值
{
int graysum = 0, n = 0;
for(int i = (cen.y - r); i <= (cen.y + r); ++i)//访问矩形框内的像素值
{
uchar* data = image.ptr<uchar>(i);
for(int j = (cen.x - r); j <= (cen.x + r); ++j)
{
double d = (i-cen.y)*(i-cen.y) + (j-cen.x)*(j-cen.x);
if(d < r*r)
{
++n;
graysum += (int)data[j];
}
}
}
for(int i = (cen.y - r); i <= (cen.y + r); ++i)//画出圆,圆内像素值为平均灰度值
{
uchar* temp = dst.ptr<uchar>(i);
for(int j = (cen.x - r); j <= (cen.x + r); ++j)
{
double d = (i-cen.y)*(i-cen.y) + (j-cen.x)*(j-cen.x);
if(d < r*r)
{
temp[j] =
求取圆形区域内的平均灰度值
最新推荐文章于 2024-08-25 11:05:21 发布
本文介绍如何利用OpenCV库进行圆形检测,并计算这些圆形区域内图像的平均灰度值,涉及到霍夫变换等图像处理技术。
摘要由CSDN通过智能技术生成