使用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 相关文章推荐
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
Jul 04 Python
详解python进行mp3格式判断
Dec 23 Python
Python 多线程的实例详解
Sep 07 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
python抓取京东小米8手机配置信息
Nov 13 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
Python3 导入上级目录中的模块实例
Feb 16 Python
记录Python脚本的运行日志的方法
Jun 05 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
python cv2.resize函数high和width注意事项说明
Jul 05 Python
详解python polyscope库的安装和例程
Nov 13 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Yii视图CGridView实现操作按钮定义地址示例
2016/07/14 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
javascript原型链学习记录之继承实现方式分析
2019/05/01 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
微信小程序实现页面左右滑动
2020/11/16 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
2018/05/31 Python
Python Flask框架模板操作实例分析
2019/05/03 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
大学生职业生涯规划范文
2014/01/22 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
2015年医院护理部工作总结
2015/04/23 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
彩虹社八名人气艺人全新周边限时推出,性转女装男装一次拥有!
2022/04/01 日漫
springboot读取resources下文件的方式详解
2022/06/21 Java/Android