#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. 一步一步教你部署ktransformers,大内存单显卡用上Deepseek-R1

    环境准备 硬件环境 CPU:intel四代至强及以上,AMD参考同时期产品 内存:800GB以上,内存性能越强越好,建议DDR5起步 显卡:Nvidia显卡,单卡显存至少24GB(用T4-16GB显卡 ...

  2. XWorker - 人机协同的共生系统

    这是XWorker的定位,让AI写的,因为动态模型和XWorker对AI本身也有特殊意义,所以让AI写也是可以的.部分是AI的幻觉,如(四.重塑产业实践),XWorker还没实现这些.之所以保留不动, ...

  3. 用 PHP 封装的发送邮件类

    点击查看代码 <?php class MailSender { // 发件人邮箱地址 private $fromEmail; // 发件人名称 private $fromName; // 收件人 ...

  4. 【Ubuntu】Ubuntu 配置镜像源(ARM)

    [Ubuntu]Ubuntu 配置镜像源(ARM) 零.起因 最近在QEMU中安装了个ubuntu-24.04-live-server-arm64,默认是国外的软件源,很慢,故替换到国内. 壹.替换 ...

  5. exim4

    exim4 一台 debian 机器日常执行 apt update 后发现需要更新如下软件包, 之前没见过, 特此记录下. root@idebian:~# apt list --upgradable ...

  6. C# using 别名

    场景重现 当using的多个库出现类名重复的情况时... 解决办法 使用类的完全限定名称,例如: // 不需要using,避免using名称重复导致的异常 // 使用类的完全限定名称,俗称全名. Sy ...

  7. robotframework之数据驱动

    用robotframework做接口自动化时,如果执行用例条数比较多时,需要把用例存到表格当中,通过数据驱动读取表格内容. 一.引入第三方库 数据驱动的第三方库:DataDriver 直接在setti ...

  8. Bongo Cat挂机连点刷分教程(Steam版)

    Bongo Cat是一个在Steam上风靡一时的游戏,通过每30分钟花费1000点击量赢取配饰并在Steam市场换取$, 这里可以用连点器刷分,最好是键盘,每30ms点击一次,点击时长30ms左右,每 ...

  9. strftime()函数的用法

    strftime()函数的用法 strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串.strftime()的语法是strftime(格式, 日期/ ...

  10. Vue3 组件通信方式小结

    也是零零散散用 vue3 来搞一些前端的页面, 每次在组件通信, 主要是传数据这块总是忘记, 大多无非父传子, 子传父等情况, 这里再来做一个小结. 父传子 Props 最常见的就是父组件给子组件传递 ...