使用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字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
python 添加用户设置密码并发邮件给root用户
Jul 25 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
python获取指定字符串中重复模式最高的字符串方法
Jun 29 Python
python列表使用实现名字管理系统
Jan 30 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python中Lambda表达式详解
Nov 20 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
浅谈anaconda python 版本对应关系
Oct 07 Python
如何让PyQt5中QWebEngineView与JavaScript交互
Oct 21 Python
python中slice参数过长的处理方法及实例
Dec 15 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 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
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
深入分析PHP设计模式
2020/06/15 PHP
不错的JS中变量相关的细节分析
2007/08/13 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
python创建和删除目录的方法
2015/04/29 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
网络安全方面的面试题
2015/11/04 面试题
大学生志愿者感言
2014/01/15 职场文书
幼师自我鉴定
2014/02/01 职场文书
青年文明号复核材料
2014/02/11 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
教师个人考察材料
2014/12/16 职场文书
招标保密承诺书
2015/01/20 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
心术观后感
2015/06/11 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
深入理解 Golang 的字符串
2022/05/04 Golang