一、计算公式
图片坐标:Point(x,y)
半径 :r =
(
x
−
i
m
a
g
e
.
c
o
l
s
/
2
)
2
+
(
y
−
i
m
a
g
e
.
r
o
w
s
/
2
)
2
\sqrt {(x - image.cols/2)^2 + (y - image.rows/2)^2}
(x−image.cols/2)2+(y−image.rows/2)2
二、以
R
R
R 为半径在图像上绘制圆形,如下图所示:
三、实现代码文章来源地址https://www.toymoban.com/news/detail-795013.html
cv::Mat image = cv::imread("D:\\Ttest\\test2\\1.bmp");
int nRadius = std::sqrt(std::pow((x - (image.cols / 2)), 2) + std::pow((y - (image.rows / 2)), 2));
cv::Point centerPoint = cv::Point(image.cols / 2, image.rows / 2); //中心点坐标
cv::Scalar color = cv::Scalar(15, 185, 255);//设置绘制圆形部分为颜色
cv::circle(image, centerPoint, nRadius, color, -1);
//计算黄色区域像素点
int nCount = 0;
for (int y = 0; y < image.rows; y++)
{
for (int x = 0; x < image.cols; x++)
{
Vec3b pixel = image.at<Vec3b>(y, x);
int B = pixel[0];
int G = pixel[1];
int R = pixel[2];
if ((B == 15) && (G == 185) && (R == 255))
{
nCount++;
}
}
}
std::cout << nCount << "\n";
float fov = (nCount*1.0) / ((image.rows * image.cols) * 1.0);
std::cout << fov;
文章来源:https://www.toymoban.com/news/detail-795013.html
到了这里,关于使用opencv计算图片上任意一点到图片中心点距离为半径绘制圆形,计算FOV的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!