• 大小: 9.26MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-04
  • 语言: Python
  • 标签: fire  

资源简介

该代码利用颜色模型去检测火焰, 分为3个模块, HSV, RGB, YCrCb 颜色空间, 根据论文定义, 设定判断的相关区间, 从而从图像中判断出火焰的位置, 对火灾的预防以及火焰的检测可以起到重要的作用. 主要采用numpy进行预处理

资源截图

代码片段和文件信息

import cv2
import numpy as np

# 该算法主要提取的是火焰的轮廓信息 效果一般
def YCrCb_model():
    img_file = ‘fire_img/fire_img0.jpg‘
    src_img = cv2.imread(img_file)
    cv2.imshow(‘src‘ src_img)
    YCbCr_img = cv2.cvtColor(src_img cv2.COLOR_BGR2YCrCb)
    YCbCr_img_gaussian = cv2.GaussianBlur(YCbCr_img (9 9) 0)
    cv2.imshow(“1“ YCbCr_img)
    cv2.imshow(“2“ YCbCr_img_gaussian)

    # 火焰区域满足关系: Y(x y) > Cb(xy) Cr(xy)>Cb(xy)
    y cb cr = cv2.split(YCbCr_img_gaussian)
    rows cols n = YCbCr_img.shape
    mean_y = np.mean(y)
    mean_cr = np.mean(cr)
    mean_cb = np.mean(cb)
    des_img = np.zeros((rows cols) YCbCr_img.dtype)

    # 计算论文中所给的待选区域颜色
    bool_matrix = (y > cb) & (cr < cb)
    # bool_matrix = (y > mean_y) & (cr < mean_cb) & (cr > mean_cr)

    print(bool_matrix)
    print(bool_matrix.shape)

    des_img[bool_matrix] = 255

    cv2.imshow(‘des_img‘ des_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


def HSV_model():
    img_file = ‘fire_img/fire_img0.jpg‘
    src_img = cv2.imread(img_file)
    cv2.imshow(‘src‘ src_img)
    hsv_img = cv2.cvtColor(src_img cv2.COLOR_BGR2HSV)
    h s v = cv2.split(hsv_img)

    rows cols n = src_img.shape

    des_img = np.zeros((rows cols) src_img.dtype)

    bool_matrix = (s >= 200) & (s <= 280) & (v >= 127) & (v <= 255)

    print(np.max(v))
    # print(v)

    des_img[bool_matrix] = 255

    cv2.imshow(“des“ des_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

# 利用RGB颜色区间 基本可行 目前还有除0的问题
def RGB_model():
    img_file = ‘fire_img/fire_img0.jpg‘
    src_img = cv2.imread(img_file)
    cv2.imshow(‘src‘ src_img)
    b g r = cv2.split(src_img)
    r_mean = np.mean(r)

    rows cols n = src_img.shape

    des_img = np.zeros((rows cols) src_img.dtype)

    x1 = g / (r+1)
    x2 = b / (r+1)

    # print(r)
    # print(“******“)
    # print(r+1)
    #
    # for m in r+1:
    #     for n in m:
    #         if n == 0:
    #             pass
                # print(‘fuck‘)

    bool_matrix = (r > r_mean) & (r > g) & (g > b) & (x1 >= 0.25) & (x1 <= 0.65) & (x2 >= 0.05) & (x2 <= 0.45)

    des_img[bool_matrix] = 255

    # image contours hierarchy = cv2.findContours(des_img cv2.RETR_TREE cv2.CHAIN_APPROX_SIMPLE)
    image contours hierarchy = cv2.findContours(des_img cv2.RETR_EXTERNAL cv2.CHAIN_APPROX_NONE)
    src_img = cv2.drawContours(src_img contours -1 (0 255 0) 3)

    cv2.imshow(“des“ des_img)
    cv2.imshow(“6“ src_img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


if __name__ == ‘__main__‘:
    # YCrCb_model()
    # RGB_model()
    HSV_model()



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2804  2019-04-12 11:47  demo2_flamex.py
     目录           0  2019-04-13 11:50  参考文献\
     文件     1794194  2019-04-03 12:15  参考文献\fastrcnn火焰检测.pdf
     文件     2647829  2019-04-03 21:13  参考文献\基于GMM与三维LBP纹理的视频火焰检测_严云洋.pdf
     文件     1204152  2019-04-03 21:13  参考文献\基于图像处理的嵌入式火焰检测系统_宋孟华.pdf
     文件     2044326  2019-04-03 21:13  参考文献\基于多特征的火灾监控系统设计_卢鑫.pdf
     文件     1818178  2019-04-03 21:13  参考文献\基于融合特征与支持向量机结合的火焰检测_熊昊.pdf
     文件     1873066  2019-04-03 21:13  参考文献\大空间图像型火焰检测方法研究_亓文杰.pdf

评论

共有 条评论