EmguCv3.4在实际工业应用----用于颜色检测,判定报警!
1.有很多需要颜色进行判定的,在普通灰图无法满足,在BGR或RGB中都不能很好判定。
2.HSV颜色空间(结构体)
由色调(Hue)、饱和度(Saturation)、亮度(Value)三个分量构成,HSV更接近于人眼的主观感受。我们可以通过下面的图来展示HSV颜色分布情况:
这个表很重要对我们常见颜色分析很重要。(借用网上图片)
实际要求及效果如下:(喇叭报警!!)
当显示红色或黄色时,开始报警提示需要测试炉温。,如变绿色停止报警!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Emgu.CV;
using Emgu.CV.Structure;
using System.IO;
using System.IO.Ports;
using Modbus_Poll_CS; //控制设备报警的类
using System.Threading;
namespace luwen1
{
public partial class luwen : Form
{
private SerialPort port;
private modbus bus1 = null;
private bool[] AMDY_OUT;
byte kp = 0;
public luwen()
{
InitializeComponent();
}
Emgu.CV.Image<Hsv, Byte> scr = null;//截图变成
private void timer1_Tick(object sender, EventArgs e)
{
Bitmap tu_jietu = new Bitmap(1600, 900);
Graphics g1 = Graphics.FromImage(tu_jietu);
g1.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(1600, 900)); //截图
// tu_jietu.Save("1.jpg");
scr = new Image<Hsv, byte>(tu_jietu);//生成HSV图片
int a = 0;
for (int i = 0; i < 100; i++)
{
Image<Hsv, byte> chu = scr.Copy(new Rectangle(830, 200 + i * 5, 20, 10));//不停抓取样空间
if ((chu.GetAverage().Hue == 0 || chu.GetAverage().Hue == 30) && chu.GetAverage().Satuation == 255) //满足颜色
{
a++;
}
}
if(a>0)
{
label1.Text = "当前状况:有线体需测炉温";
label1.BackColor = Color.Red;
bus1.write_shuzi((byte)1, 0, (byte)0, true);
}
if (a == 0)
{
label1.Text = "当前状况:正常";
label1.BackColor = Color.Green;
bus1.write_shuzi((byte)1, 0, (byte)0, false);
}
}
private void luwen_Load(object sender, EventArgs e) //串口初始化
{
AMDY_OUT = new bool[10] { false, false, false, false, false, false, false, false, false, false };
port = new SerialPort();
port.DataBits = 8;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.PortName = "COM3";
port.BaudRate =9600;
if (port.IsOpen == false)
{
bus1 = new modbus();
bus1.sp = port;
port.Open();
}
timer1.Enabled = true;
}
private void luwen_FormClosing(object sender, FormClosingEventArgs e)
{
if (port.IsOpen == true)
{
port.Close();
}
}
}
}
EmguCv3.4在实际工业应用----用于颜色检测,判定报警!相关推荐
- Mask R-CNN用于目标检测和分割代码实现
Mask R-CNN用于目标检测和分割代码实现 Mask R-CNN for object detection and instance segmentation on Keras and Tenso ...
- 用于阴影检测的 DSC 特征
原文:https://mp.weixin.qq.com/s?__biz=MjM5ODU3OTIyOA==&mid=2650672956&idx=3&sn=49bc9975cba ...
- MoCo不适用于目标检测?MSRA提出对象级对比学习的目标检测预训练方法SoCo!性能SOTA!(NeurIPS 2021)...
关注公众号,发现CV技术之美 本文分享 NeurIPS 2021 论文『Aligning Pretraining for Detection via Object-Level Contrastive ...
- CVPR2022知识蒸馏用于目标检测:Focal and Global Knowledge Distillation for Detectors
论文下载:https://arxiv.org/abs/2111.11837 源码下载:https://github.com/yzd-v/FGD Abstract 知识蒸馏已成功应用于图像分类.然而目标 ...
- CVPR2019文章解读 Pyramid Feature Attention Network for Saliency detection 用于显著性检测的金字塔特征注意网络
Pyramid Feature Attention Network for Saliency detection 摘要 显著性检测是计算机视觉领域的基本挑战之一,怎么有效去提取特征非常关键,目前的一些 ...
- OpenCV - C++实战(05) — 颜色检测
目录 第5章 颜色检测 5.1 实现原理 5.2 Lab颜色模型 5.3 cv :: threshold() 阈值函数 5.4 计算图像之间的距离 5.4.1 公式计算 5.4.2 cv::absd ...
- python颜色识别原理_python+opencv实现颜色检测、轮廓检测、颜色追踪
准备工作 python配置numpy和openCv库 读取图像和视频图像cv2.imread(路径) cv2.imshow(窗口名称,输出对象) cv2.waitkey(等待时间)import cv2 ...
- 用于异常检测的深度神经网络模型融合
用于异常检测的深度神经网络模型融合 在当今的数字时代,网络安全至关重要,因为全球数十亿台计算机通过网络连接.近年来,网络攻击的数量大幅增加.因此,网络威胁检测旨在通过观察一段时间内的流量数据来检测这些 ...
- HOG:用于人体检测的方向梯度直方图
1. 论文简介 论文名:Histograms of Oriented Gradients for Human Detection 论文地址 :HOG 论文作者:Navneet Dalal and Bi ...
最新文章
- git 下载 github 上的代码
- Qt 第二章 创建对话框--纯代码实现改变形状的对话框(二)
- Win32下VC编译OpenSSl
- Oracle不使用索引的几种情况列举
- Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)
- 通过错误的sql来测试推理sql的解析过程
- Linux文件编程(2)
- Spring mvc项目导出jar包无法识别正常映射问题
- 中国天然饮料市场趋势报告、技术动态创新及市场预测
- openmv探索_5_openmv读取的数据输出到外界
- 深入浅出Flume之原理解析
- 【快速、批量】修改图片格式
- 监控手机屏幕、监控电脑屏幕方案
- 从零开始之驱动发开、linux驱动(二十、linux设备驱动中的并发控制)
- 2.Zigbee串口发送
- 写入文件(覆盖文件的内容)
- entfrm开发平台,一个免费开源可视化的无代码开发平台
- centos图形化磁盘文件管理_CentOS7磁盘管理-分区扩容-使用gparted图形化工具或系统命令...
- 像素、分辨率、帧率、码率、清晰度的区别
- 删除文件过一会又回来_内存卡数据删了又自动回来怎么回事
热门文章
- chrome://inspect/#devices调试方法及页面白屏解决
- 基于图像识别的电子相册项目
- 2020天猫“双11”全球狂欢季成交额达4982亿元!再次刷新纪录!
- 如何优雅升级ng2项目
- linux常中的cat命令,cat命令-linux常用命令cat用法详解
- 架构mysql_MySQL学习笔记之MySQL架构
- 获取联通、电信、任意ISP ip段
- c++builder实现文件拖拽与U盘复制---YYB原创(转载请注明出处)
- TextView默认padding
- windows MySQL数据备份