基于数字图像粗花里的火焰长宽比滤波代码
时间: 2023-12-15 13:05:15 浏览: 222
以下是基于数字图像粗花里的火焰长宽比滤波的代码:
```python
import cv2
import numpy as np
def flame_filter(image):
# 将图像转换为灰度图
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 二值化处理
ret, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
# 轮廓检测
contours, hierarchy = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 长宽比滤波
flame_contours = []
for contour in contours:
x, y, w, h = cv2.boundingRect(contour)
aspect_ratio = float(w) / h
if aspect_ratio > 0.2 and aspect_ratio < 1.5:
flame_contours.append(contour)
# 绘制火焰轮廓
flame_image = np.zeros(image.shape, dtype=np.uint8)
cv2.drawContours(flame_image, flame_contours, -1, (0, 0, 255), 2)
return flame_image
```
该函数接收一张图像作为输入,返回一张只包含火焰的图像。首先将输入图像转换为灰度图,并进行二值化处理。然后使用 `cv2.findContours` 检测图像中的轮廓。接下来进行长宽比滤波,将长宽比在 0.2 和 1.5 之间的轮廓筛选出来。最后在新图像中绘制筛选后的火焰轮廓。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)