一、計算公式
圖片坐標(biāo):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 為半徑在圖像上繪制圓形,如下圖所示:
三、實現(xiàn)代碼文章來源地址http://www.zghlxwxcb.cn/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); //中心點坐標(biāo)
cv::Scalar color = cv::Scalar(15, 185, 255);//設(shè)置繪制圓形部分為顏色
cv::circle(image, centerPoint, nRadius, color, -1);
//計算黃色區(qū)域像素點
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;
文章來源:http://www.zghlxwxcb.cn/news/detail-795013.html
到了這里,關(guān)于使用opencv計算圖片上任意一點到圖片中心點距離為半徑繪制圓形,計算FOV的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!