使用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中List.index()方法的使用教程
May 20 Python
Python实现计算最小编辑距离
Mar 17 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
python 遍历pd.Series的index和value
Nov 26 Python
pytorch 批次遍历数据集打印数据的例子
Dec 30 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
如何用Python和JS实现的Web SSH工具
Feb 23 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的FTP学习(一)
2006/10/09 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
PHP SESSION跨页面传递失败解决方案
2020/12/11 PHP
关于jQuery object and DOM element
2013/04/15 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python读大数据txt
2016/03/28 Python
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
django缓存配置的几种方法详解
2018/07/16 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
化妆品促销方案
2014/02/24 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
私人委托书格式
2014/09/10 职场文书
大学生读书笔记范文
2015/07/01 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
小学音乐课歌曲《堆雪人》教学反思
2016/02/18 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技