使用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 文件和输入输出小结
Oct 09 Python
python字典排序实例详解
May 20 Python
Python实现的多线程http压力测试代码
Feb 08 Python
Python+matplotlib实现华丽的文本框演示代码
Jan 22 Python
Django自定义manage命令实例代码
Feb 11 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
PyTorch实现AlexNet示例
Jan 14 Python
Python底层封装实现方法详解
Jan 22 Python
Keras实现DenseNet结构操作
Jul 06 Python
Pytorch中的数据集划分&正则化方法
May 27 Python
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
Jun 22 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
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
php5与php7的区别点总结
2019/10/11 PHP
js 操作符实例代码
2009/10/24 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
浅谈js原生拖放
2016/11/21 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
javascript canvas检测小球碰撞
2020/04/17 Javascript
Python自动重试HTTP连接装饰器
2015/04/28 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
《东方明珠》教学反思
2014/04/20 职场文书
2014个人年度工作总结
2014/12/15 职场文书
给学校的建议书400字
2015/09/14 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python
Python爬虫基础初探selenium
2021/05/31 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫
解决WINDOWS电脑开机后桌面没有任何图标
2022/04/09 数码科技
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python