#include<opencv2/opencv.hpp>
#include<opencv2/opencv_modules.hpp>
#include<iostream>
#include<math.h> using namespace cv;
using namespace std;
Mat src, dst, binout, src_gray;
int Threshold = 140; void jdge_color(vector<int> colovec); int main() { //输入图像并转化为灰度
src = imread("E://2.png");
if (src.empty()) {
printf("src couldn't be loaded...");
return -1;
}
imshow("input", src); cvtColor(src, src_gray, COLOR_BGR2GRAY);
medianBlur(src_gray, src_gray, 21);
blur(src_gray, src_gray, Size(21, 21)); //设置阈值后执行CallBack()
namedWindow("output"); //createTrackbar("Threshold", "output", &Threshold, 255, CallBack);
//二值化
threshold(src_gray, binout, Threshold, 255, THRESH_BINARY);
//Canny(src_gray, binout, Threshold, Threshold * 2);
imshow("binary", binout);
//寻找边缘
vector<vector<Point>> contours;
vector<Vec4i> hierachy;
findContours(binout, contours, hierachy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0)); //得到矩形框相关参数
vector<vector<Point>> polies(contours.size());//减少后的多边形边缘上的点
vector<Rect> rects(contours.size());//矩形框 for (size_t i = 0; i < contours.size(); i++) {
approxPolyDP(Mat(contours[i]), polies[i], 3, true);//减少多边形边缘点
rects[i] = boundingRect(polies[i]);
} //绘制他们
Point2f pts[4];
for (size_t i = 0; i < contours.size(); i++) {
Mat matHsv;
Mat imgThresholded;
Scalar scalar;
Mat cut = src(rects[i]); cvtColor(cut, matHsv, COLOR_BGR2HSV);
imshow("hsv.jpg", matHsv);
scalar = cut.at<Vec3b>(cut.rows/2, cut.cols/2);
int a = (int)scalar.val[1];
rectangle(src, rects[i], Scalar(0,0,0), 2);//画矩形框
//mage_rect.push_back(src(rects[i]));
}
imshow("output", src); waitKey(0);
return 0;
}

注明:有部分代码来源于网络,如果是你写的,请留言让我注明一下原作者!

opencv检测物体颜色的更多相关文章

  1. python opencv 检测特定颜色

    import cv2 import numpy as np cap = cv2.VideoCapture(0) # set blue thresh 设置HSV中蓝色.天蓝色范围 lower_blue ...

  2. [PyImageSearch] Ubuntu16.04 使用深度学习和OpenCV实现物体检测

    上一篇博文中讲到如何用OpenCV实现物体分类,但是接下来这篇博文将会告诉你图片中物体的位置具体在哪里. 我们将会知道如何使用OpenCV‘s的dnn模块去加载一个预训练的物体检测网络,它能使得我们将 ...

  3. OpenCV 使用光流法检测物体运动

    OpenCV 可以使用光流法检测物体运动,贴上代码以及效果. // opticalflow.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" ...

  4. R-FCN:基于区域的全卷积网络来检测物体

    http://blog.csdn.net/shadow_guo/article/details/51767036 原文标题为“R-FCN: Object Detection via Region-ba ...

  5. 用 Python 和 OpenCV 检测图片上的条形码

      用 Python 和 OpenCV 检测图片上的的条形码 这篇博文的目的是应用计算机视觉和图像处理技术,展示一个条形码检测的基本实现.我所实现的算法本质上基于StackOverflow 上的这个问 ...

  6. 用 Python 和 OpenCV 检测图片上的条形码(转载)

    原文地址:http://python.jobbole.com/80448/ 假设我们要检测下图中的条形码: # load the image and convert it to grayscale 1 ...

  7. OpenCV学习 物体检测 人脸识别 填充颜色

    介绍 OpenCV是开源计算机视觉和机器学习库.包含成千上万优化过的算法.项目地址:http://opencv.org/about.html.官方文档:http://docs.opencv.org/m ...

  8. 【转】opencv检测运动物体的基础_特征提取

    特征提取是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点.连续的曲线或者连 ...

  9. (转)使用Python和OpenCV检测图像中的物体并将物体裁剪下来

    原文链接:https://blog.csdn.net/liqiancao/article/details/55670749 介绍 硕士阶段的毕设是关于昆虫图像分类的,代码写到一半,上周五导师又给我新的 ...

  10. 惊!Python能够检测动态的物体颜色!

    本篇文章将通过图片对比的方法检查视频中的动态物体,并将其中会动的物体定位用cv2矩形框圈出来.本次项目可用于树莓派或者单片机追踪做一些思路参考.寻找动态物体也可以用来监控是否有人进入房间等等场所的监控 ...

随机推荐

  1. SQL INSERT批量插入方式

    1.常规INSERT写法   INSERT INTO ... VALUES (...); INSERT INTO 表名( `字段1`, `字段2`) VALUES ('字段1的值', '字段2的值') ...

  2. 史上最全EffectiveJava总结(一)

    创建和销毁对象 1.静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象. 不必每次调用都创建一个新的对象. 可以返回原返回类型的任何子类对象. 创建参数化类型实例时更加简洁, ...

  3. [源码系列:手写spring] IOC第六节:资源和资源加载器

    主要内容 本节新增 Resource接口 定义对资源的抽象和访问,并且添加三个Resource接口的简单实现类. FileSystemResource 文件系统资源的实现类 ClassPathReso ...

  4. leetcode每日一题:酿造药水需要的最少总时间

    引言 ​ 今天的每日一题原题是2255. 统计是给定字符串前缀的字符串数目,直接模拟,逐个匹配words中的字符串是否是s的前缀即可.更换成前几天遇到的更有意思的一题来写这个每日一题. 题目 给你两个 ...

  5. # 🤖 **DeepSeek 深度解析 PasteForm:一个让管理端开发爽到飞起的全栈解决方案**

    DeepSeek 深度解析 PasteForm:一个让管理端开发爽到飞起的全栈解决方案 各位开发者注意啦!今天我要带大家全方位解剖 PasteForm 这个神奇框架--不仅介绍核心思想,更要重点展示它 ...

  6. 一个Bug让人类科技倒退几十年?

    大家好,我是良许. 前几天在直播的时候,问了直播间的小伙伴有没人知道「千年虫」这种神奇的「生物」的,居然没有一人能够答得上来的. 所以,今天就跟大家科普一下这个人类历史上最大的 Bug . 1. 全世 ...

  7. C 图上的遍历算法

    图上的遍历算法 广度优先搜索 BFS 概念 广度优先搜索(Breadth-First Search)是一种图遍历算法,用于在图或树中按层次逐层访问节点.它从源节点(起始节点)开始,首先访问源节点的所有 ...

  8. sql数据库连接

    前言 作为数据存储的数据库,近年来发展飞快,在早期的程序自我存储到后面的独立出中间件服务,再到集群,不可谓不快了.早期的sql数据库一枝独秀,到后面的Nosql,还有azure安全,五花八门,教人学不 ...

  9. Linux四剑客grep、find、sed、awk使用

    ‌介绍 Linux四剑客‌是指在Linux系统中非常常用的四个命令工具,它们分别是grep.find.sed和awk.这四个工具在Linux系统中具有非常强大的功能,可以方便快捷地对文本进行搜索.处理 ...

  10. Full GC 频率优化实战

    作者:vivo 互联网服务器团队- Li Gang 本文介绍了游戏业务使用MAT和GC日志等工具对 Full GC频率进行优化的过程. 一.背景 游戏业务面对用户端的某个工程,每天Full GC频率达 ...