使用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实现可以断点续传和并发的ftp程序
Sep 13 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
python中利用zfill方法自动给数字前面补0
Apr 10 Python
用python实现刷点击率的示例代码
Feb 21 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
python实现kNN算法识别手写体数字的示例代码
Aug 16 Python
Django 404、500页面全局配置知识点详解
Mar 10 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
PyInstaller的安装和使用的详细步骤
Jun 02 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
win10安装python3.6的常见问题
Jul 01 Python
windows+vscode安装paddleOCR运行环境的步骤
Nov 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
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
关于function类中定义变量this的简单说明
2016/05/28 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python利用前序和中序遍历结果重建二叉树的方法
2016/04/27 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
python 正确保留多位小数的实例
2018/07/16 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Python @property及getter setter原理详解
2020/03/31 Python
django实现模型字段动态choice的操作
2020/04/01 Python
Python实现数字的格式化输出
2020/08/01 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
金鑫耀Java笔试题
2014/09/06 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
酒店人事专员岗位职责
2013/12/19 职场文书
医院实习介绍信
2014/01/12 职场文书
天网工程实施方案
2014/03/26 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
五好关工委申报材料
2014/05/31 职场文书
高中化学教学反思
2016/02/22 职场文书