使用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根据文件大小打log日志
Oct 09 Python
Django实现快速分页的方法实例
Oct 22 Python
Python实现中一次读取多个值的方法
Apr 22 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
如何优雅地改进Django中的模板碎片缓存详解
Jul 04 Python
python从入门到精通 windows安装python图文教程
May 18 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
如何在python中写hive脚本
Nov 08 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
5道关于python基础 while循环练习题
Nov 27 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
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
PHP设置进度条的方法
2015/07/08 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
JavaScript中的类(Class)详细介绍
2014/12/30 Javascript
举例讲解Node.js中的Writable对象
2015/07/29 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
python实现字符串和日期相互转换的方法
2015/05/13 Python
Python yield与实现方法代码分析
2018/02/06 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
opencv python图像梯度实例详解
2020/02/04 Python
python的sys.path模块路径添加方式
2020/03/09 Python
关于Python解包知识点总结
2020/05/05 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
小学门卫岗位职责
2013/12/17 职场文书
工程业务员岗位职责
2013/12/31 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
借条格式范本
2015/05/25 职场文书
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js