使用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解析网页源代码中的115网盘链接实例
Sep 30 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
Python中查看文件名和文件路径
Mar 31 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
python编写分类决策树的代码
Dec 21 Python
Pytorch入门之mnist分类实例
Apr 14 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
Jul 09 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
使用python将图片格式转换为ico格式的示例
Oct 22 Python
使用Python快速制作可视化报表的方法
Feb 03 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Scrapy框架基本命令与settings.py设置
Feb 06 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中注册器模式类用法实例分析
2015/11/03 PHP
php微信公众号开发之简答题
2018/10/20 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JS原型、原型链深入理解
2016/02/27 Javascript
JavaScript判断数字是否为质数的方法汇总
2016/06/02 Javascript
jquery获取元素到屏幕四周可视距离的方法
2018/09/05 jQuery
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
python爬虫入门教程--优雅的HTTP库requests(二)
2017/05/25 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
python中最小二乘法详细讲解
2021/02/19 Python
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
3分钟英语演讲稿
2014/04/29 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
归元寺导游词
2015/02/06 职场文书
学校节水倡议书
2015/04/29 职场文书
音乐会主持人开场白
2015/05/28 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
mysql中整数数据类型tinyint详解
2021/12/06 MySQL
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL