使用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脚本实现代码行数统计代码分享
Mar 10 Python
python迭代器与生成器详解
Mar 10 Python
Python温度转换实例分析
Jan 17 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
详解Python 正则表达式模块
Nov 05 Python
使用python 写一个静态服务(实战)
Jun 28 Python
解决Python import docx出错DLL load failed的问题
Feb 13 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
python 模拟登陆github的示例
Dec 04 Python
在python中读取和写入CSV文件详情
Jun 28 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
js玩一玩WSH吧
2007/02/23 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
简洁短小的 JavaScript IE 浏览器判定代码
2010/03/21 Javascript
jQuery操作select的实例代码
2012/06/14 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
NodeJs读取JSON文件格式化时的注意事项
2016/09/25 NodeJs
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
ajax请求data遇到的问题分析
2018/01/18 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
python django 实现验证码的功能实例代码
2017/05/18 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
如何清空Session
2015/02/23 面试题
高中生物教学反思
2014/02/05 职场文书
毕业寄语大全
2014/04/09 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
合理化建议书
2015/02/04 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js