使用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使用reportlab将目录下所有的文本文件打印成pdf的方法
May 20 Python
详解python发送各类邮件的主要方法
Dec 22 Python
一份python入门应该看的学习资料
Apr 11 Python
Python多继承原理与用法示例
Aug 23 Python
浅谈Python小波分析库Pywavelets的一点使用心得
Jul 09 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 Python
Python @property原理解析和用法实例
Feb 11 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
详解python字符串驻留技术
May 21 Python
python模板入门教程之flask Jinja
Apr 11 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
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
destoon调用自定义模板及样式的公告栏
2014/06/21 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
2012/11/20 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
JavaScript 判断iPhone X Series机型的方法
2019/01/28 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
Python去除字符串两端空格的方法
2015/05/21 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
有趣的python小程序分享
2017/12/05 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
使用css3匹配手机屏幕横竖状态
2014/01/27 HTML / CSS
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
运动会通讯稿400字
2014/01/28 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
javaScript Array api梳理
2021/03/31 Javascript
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android