基于python中的opencv库写一个使用图像识别检测停机坪图像的程序
时间: 2024-04-29 08:20:56 浏览: 159
以下是一个使用opencv库的Python程序,用于检测停机坪图像:
```
import cv2
# 加载图像
image = cv2.imread('停机坪图像.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用高斯滤波去除噪声
blur = cv2.GaussianBlur(gray, (5, 5), 0)
# 检测圆形区域
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 如果没有检测到圆形区域,输出提示信息
if circles is None:
print('未检测到停机坪')
# 如果检测到圆形区域,输出结果
else:
circles = np.round(circles[0, :]).astype("int")
print('检测到停机坪,位置和半径:')
for (x, y, r) in circles:
print('({}, {}), 半径: {}'.format(x, y, r))
cv2.circle(image, (x, y), r, (0, 255, 0), 2)
cv2.putText(image, "P", (x - 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2)
# 显示结果图像
cv2.imshow("Result", image)
cv2.waitKey(0)
```
该程序的流程如下:
1. 加载图像
2. 将图像转换为灰度图像
3. 使用高斯滤波去除噪声
4. 使用霍夫圆变换检测圆形区域
5. 如果没有检测到圆形区域,输出提示信息
6. 如果检测到圆形区域,输出位置和半径,并在图像中绘制圆形和文字
7. 显示结果图像
该程序使用霍夫圆变换来检测停机坪图像中的圆形区域。如果检测到圆形区域,程序会输出圆心坐标和半径,并在图像中绘制圆形和文字。如果没有检测到圆形区域,程序会输出提示信息。
阅读全文