OpenCV 学习记录5 图像通道分离、对比度和亮度调整
来源:互联网 发布:中国的顶级域名 编辑:程序博客网 时间:2024/06/05 22:15
图像通道分离函数split的使用
#include <cv.h> #include <highgui.h> #include <iostream> using namespace cv;using namespace std;int main() { vector<Mat> channels; Mat imageBlueChannel, imageGreenChannel, imageRedChannel; Mat srcimage = imread("dota_pa.jpg"); Mat logoImage = imread("dota_logo.jpg"); split(srcimage, channels); imageBlueChannel = channels.at(0); imageGreenChannel = channels.at(1); imageRedChannel = channels.at(2); imshow("Blue", imageBlueChannel); imshow("Green", imageGreenChannel); imshow("Red", imageRedChannel); waitKey(0); return 0;}
这里把各个单颜色通道的图片给show出来后看见的都是灰色的,因为都是单色所以显示出来就是灰色的啦,仔细看三张图片可以看出确实色彩是不一样的,再次强调OpenCV默认的颜色顺序是BGR。
图像对比度和亮度调整
#include<iostream>#include<opencv2\core\core.hpp>#include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;static void on_ContrastAndBright(int, void *);int g_nContrastValue;int g_nBrightValue;Mat g_srcImage, g_dstImage;int main(){ g_srcImage = imread("dota_pa.jpg"); if (!g_srcImage.data) { cout << "读取dota_pa.jpg错误\n"; return false; } g_dstImage = Mat::zeros(g_srcImage.size(), g_srcImage.type()); //创建同大小,同类型的矩阵 //设定初始值 g_nBrightValue = 80; g_nContrastValue = 80; namedWindow("效果图"); //很重要,不先定义一个窗口后面的Trackbar就无法在同一个窗口里显示出来 createTrackbar("对比度:", "效果图", &g_nContrastValue, 300, on_ContrastAndBright); createTrackbar("亮 度:", "效果图", &g_nBrightValue, 200, on_ContrastAndBright); // 调用回调函数 on_ContrastAndBright(g_nContrastValue, 0); on_ContrastAndBright(g_nBrightValue, 0); waitKey(0) ; return 0;}static void on_ContrastAndBright(int, void *){//这个回调函数的参数不太理解,查了下说是规定要有这两个参数。。。 for(int y=0; y< g_srcImage.rows;y++) for(int x = 0; x< g_srcImage.cols; x++) for (int c = 0;c < 3;c++) { g_dstImage.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_nContrastValue * 0.01)*(g_srcImage.at<Vec3b>(y, x)[c]) + g_nBrightValue ); } imshow("原始图", g_srcImage); imshow("效果图", g_dstImage);}
这个也是跟着书上弄却还是花了好长时间debug,略心塞,不想多分析了。
感觉基本操作差不多了,对OpenCV也有了一定了解,该着手想想怎么实现我的美妆功能了。
依旧,欢迎指出问题和交流问题。
0 0
- OpenCV 学习记录5 图像通道分离、对比度和亮度调整
- 【OpenCV学习笔记】十二、图像的对比度和亮度调整及图像通道的分离与合并
- opencv对比度亮度调整与通道分离
- opencv(10)---对比度亮度调整与通道分离与合并
- opencv学习笔记-4、调整图像亮度和对比度
- OpenCV学习第七篇:调整图像亮度和对比度
- 【学习OpenCV】图像的亮度/对比度调整
- Opencv图像对比度和亮度的调整
- opencv调整图像亮度和对比度
- OpenCV--调整图像亮度和对比度
- 调整图像亮度和对比度
- OpenCV学习:创建Trackbar & 图像对比度、亮度值调整
- opencv学习(4)——图像亮度、对比度调整
- opencv学习笔记之调整图像的亮度与对比度
- Opencv图像对比度和亮度的调整-滚动条
- 基于OpenCV调整图像的对比度和亮度
- [原创]opencv图像亮度/对比度调整实验
- opencv-图像对比度、亮度值调整
- Caffe--windows下的初使用及简单测试
- 130.短信的备份
- vim 及 快捷键
- 【HTML】对与HTML语言详细概述及其使用说明
- 二元位运算
- OpenCV 学习记录5 图像通道分离、对比度和亮度调整
- maven问答录
- java反射知识总结
- 部署ArcGIS API for JS时出的一个小问题及解决过程
- 对象池
- C# 利用微软提供的画图类画图(如折线图)
- 用户组管理
- [Computer Networks] Introduction
- c语言中各类型所占字节大小