使用OpenCV获取图像某点的颜色值,并设置某点的颜色


Posted in Python onJune 02, 2020

以下用OpenCV实现获取图像中某点的颜色值,并设置某点区域的颜色

#include <opencv2\opencv.hpp>
using namespace cv;
 
vector<char*> listFiles(const char * dir);
int main()
{
 Mat img = imread("D:\\OpencvTest\\test.jpg");
 Scalar color = img.at<Vec3b>(150, 150);//读取原图像(150, 150)的BGR颜色值,如果是灰度图像,将Vec3b改为uchar
 for (size_t row=0; row<50; row++)
 for (size_t col=0;col<img.cols;col++)
 {
  //设置原图像中某点的BGR颜色值
  img.at<Vec3b>(row, col) = Vec3b(color(0), color(1), color(2));
 
 }
 cv::circle(img, Point(150, 150), 4, cv::Scalar(0, 0, 255));//在图像中画出特征点,2是圆的半径
 imshow("img", img);
 waitKey(0);
 return 0;
}

运行效果:

使用OpenCV获取图像某点的颜色值,并设置某点的颜色

补充知识:opencv中对图片的二值化操作并提取特定颜色区域

我就废话不多说了,大家还是直接看代码吧!

#include<opencv2/core/core.hpp> 
#include<opencv2/highgui/highgui.hpp> 
#include<opencv2/imgproc/imgproc.hpp> 
#include <vector>
#include<iostream> 
#include<string>

using namespace std;
using namespace cv;
//bgr图像 
Mat bgr;
//HSV图像 
Mat hsv;
//色相 
int hmin = 0;//h分量取下限
int hmax = 180;//h分量取上限
int h_Max = 180; //h分量可取的最大值
//饱和度 
int smin = 0;//s分量取下限
int smax = 255;//s分量取上限
int s_Max = 255;//s分量可取的最大值
//亮度 
int vmin = 0;//v分量取下限
int vmax = 255;//v分量取上限
int v_Max = 255;//v分量可取的最大值

string windowName = "src";

string dstName = "dst";
//输出图像 
Mat dst;
//回调函数 
void callBack(int, void*)
{
  //输出图像分配内存 
  dst = Mat::zeros(bgr.size(), bgr.type());
   
  Mat mask;
  inRange(hsv, Scalar(hmin, smin, vmin), Scalar(hmax, smax, vmax), mask);
   
  for (int r = 0; r < bgr.rows; r++)
  {
    for (int c = 0; c < bgr.cols; c++)
    {
      if (mask.at<uchar>(r, c) == 255)
      {
        dst.at<Vec3b>(r, c)[0] = bgr.at<Vec3b>(r, c)[0];
        dst.at<Vec3b>(r, c)[1] = bgr.at<Vec3b>(r, c)[1];
        dst.at<Vec3b>(r, c)[2] = bgr.at<Vec3b>(r, c)[2];
      }
    }
  }
  imshow("mask", mask);
  //输出图片
  imshow("dst", dst);
}
int main()
{
  //输入图片 
  Mat srcImage = imread("C:\\Users\\Administrator\\Desktop\\0001.jpg");
  if (!srcImage.data){
    cout << "图片读取失败" << endl;
    system("pause");
    return -1;
  }
  imshow(windowName, srcImage);
  bgr = srcImage;
  //颜色空间转换 
  cvtColor(bgr, hsv, COLOR_BGR2HSV);
  //定义输出图像的显示窗口 
  namedWindow(dstName, 0);
  //调节色相 H 
  createTrackbar("hmin", dstName, &hmin, h_Max, callBack);
  createTrackbar("hmax", dstName, &hmax, h_Max, callBack);
  //调节饱和度 S 
  createTrackbar("smin", dstName, &smin, s_Max, callBack);
  createTrackbar("smax", dstName, &smax, s_Max, callBack);
  //调节亮度 V 
  createTrackbar("vmin", dstName, &vmin, v_Max, callBack);
  createTrackbar("vmax", dstName, &vmax, v_Max, callBack);
  callBack(0, 0);
  waitKey(0);
  return 0;
}

以上这篇使用OpenCV获取图像某点的颜色值,并设置某点的颜色就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用cookielib库示例分享
Mar 03 Python
浅谈Python的文件类型
May 30 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
Python网络编程之TCP套接字简单用法示例
Apr 09 Python
详解Python如何生成词云的方法
Jun 01 Python
Python 面试中 8 个必考问题
Nov 16 Python
Python Pexpect库的简单使用方法
Jan 29 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
Apr 26 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
python基于opencv检测程序运行效率
Dec 28 Python
详解python tkinter 图片插入问题
Sep 03 Python
python Selenium 库的使用技巧
Oct 16 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 #Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 #Python
Java多线程实现四种方式原理详解
Jun 02 #Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
Jun 02 #Python
opencv+python实现鼠标点击图像,输出该点的RGB和HSV值
Jun 02 #Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 #Python
Python几种常见算法汇总
Jun 02 #Python
You might like
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
php按单词截取字符串的方法
2015/04/07 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
AngularJS入门教程之路由机制ngRoute实例分析
2016/12/13 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
python判断windows隐藏文件的方法
2014/03/21 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
python实现BackPropagation算法
2017/12/14 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
python3中zip()函数使用详解
2018/06/29 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
Bandier官网:奢侈、时尚前卫的健身服装首选目的地
2020/07/05 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
青蓝工程实施方案
2014/03/27 职场文书
遗产继承公证书
2014/04/09 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
后天观后感
2015/06/08 职场文书
单位同意报考证明
2015/06/17 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
MySQL事务的隔离级别详情
2022/07/15 MySQL