使用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实现多行注释的另类方法
Aug 22 Python
python使用Tkinter显示网络图片的方法
Apr 24 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
Python中index()和seek()的用法(详解)
Apr 27 Python
TensorFlow实现AutoEncoder自编码器
Mar 09 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
python实现动态创建类的方法分析
Jun 25 Python
python常用排序算法的实现代码
Nov 08 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
python实现图片横向和纵向拼接
Mar 05 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
Nov 09 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 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 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
PHP魔术方法的使用示例
2015/06/23 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
ng-alain表单使用方式详解
2018/07/10 Javascript
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
Python的Django框架中的Context使用
2015/07/15 Python
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
Html5 audio标签样式的修改
2016/01/28 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
办理退休介绍信
2014/01/09 职场文书
怎么写好自荐书
2014/03/02 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
剖析后OpLog订阅MongoDB的数据变更就没那么难了
2022/02/24 MongoDB