当前位置:网站首页>opencv学习(3)之颜色表操作 逻辑操作 通道分离,合并,混合
opencv学习(3)之颜色表操作 逻辑操作 通道分离,合并,混合
2022-07-19 05:12:00 【@[email protected]】
1.伪色彩函数:applyColorMap()
在OpenCV库中,常见的伪色彩模式可以通过 applyColorMap(InputArray src, OutputArray dst, int colormap)直接调用。
1、函数说明:
(1)void applyColorMap(InputArray src, OutputArray dst, int colormap)
src: 源图像(灰度图或彩色图(CV_8UC1 or CV_8UC3))。
dst: 在源图像上进行色彩映射后的结果图像。
colormap:提供的色彩图代码值。(参见:ColormapTypes 枚举数据类型)
(2)void applyColorMap(InputArray src, OutputArray dst, InputArray userColor)
src: 源图像(灰度图或彩色图(CV_8UC1 or CV_8UC3))。
dst: 在源图像上进行色彩映射后的结果图像。
userColor:自定义的色彩(CV_8UC1 or CV_8UC3 and size 256)。
2、OpenCV 4.1.0 中定义了色彩图枚举数据类型:ColormapTypes(包含 20 种)。
说明:(1)在 imgproc.hpp 文件中定义。
//! GNU Octave/MATLAB equivalent colormaps
enum ColormapTypes
{
COLORMAP_AUTUMN = 0, //!< 
COLORMAP_BONE = 1, //!< 
COLORMAP_JET = 2, //!< 
COLORMAP_WINTER = 3, //!< 
COLORMAP_RAINBOW = 4, //!< 
COLORMAP_OCEAN = 5, //!< 
COLORMAP_SUMMER = 6, //!< 
COLORMAP_SPRING = 7, //!< 
COLORMAP_COOL = 8, //!< 
COLORMAP_HSV = 9, //!< 
COLORMAP_PINK = 10, //!< 
COLORMAP_HOT = 11, //!< 
COLORMAP_PARULA = 12, //!< 
COLORMAP_MAGMA = 13, //!< 
COLORMAP_INFERNO = 14, //!< 
COLORMAP_PLASMA = 15, //!< 
COLORMAP_VIRIDIS = 16, //!< 
COLORMAP_CIVIDIS = 17, //!< 
COLORMAP_TWILIGHT = 18, //!< 
COLORMAP_TWILIGHT_SHIFTED = 19 //!< 
};
2.逻辑操作
就是位运算:
//与
bitwise_and(src1, src2, dst); //src1 src2都是源文件 dst目标文件
//或
bitwise_or(src1, src2, dst); //src1 src2都是源文件 dst目标文件
//非或者取反image=~image;
bitwise_not( src, dst); //src都是源文件 dst目标文件
//异或
bitwise_xor(src1, src2, dst); //src1 src2都是源文件 dst目标文件
3.通道分离与合并
一个彩色图像由三个通道组成,一个通道就是一个灰度图,然后进行混合,组成不同的颜色
//通道分离合并
std::vector<Mat>mv;
//分离
split(src, mv);
imshow("蓝色", mv[0]);
imshow("绿色", mv[1]);
imshow("红色", mv[2]);
Mat t;
mv[1] = mv[2] = 0;
//合并
merge(mv, t);
imshow("合并蓝色", t);
3.1.mixChannels()的使用方法
原型:
void cv::mixChannels ( const Mat * src,
size_t nsrcs,
Mat * dst,
size_t ndsts,
const int * fromTo,
size_t npairs
)
代码解释是:
第一个参数输入对象,可以是一个,也可以是多个。如果是多个请传入数组对象。
第二个参数输入对象的个数,也就是参数1中的数组中元素的个数
第三个参数输出对象,可以是一个,也可以是多个,如果是多个请传入数组。
第四个参数是输出对象的个数
第五个参数是混合数组。
第六个参数是通道数
// bgra[0] -> bgr[2], bgra[1] -> bgr[1],
// bgra[2] -> bgr[0]
int from_to[] = { 0,2, 1,1, 2,0};
mixChannels( &bgra, 1, out, 2, from_to, 3 );
版权声明
本文为[@[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_46392035/article/details/125824703
边栏推荐
- [vscode advanced preliminary] vscode debug
- Use of homebrew
- 微信小程序获取uni.showActionSheet中选择的值
- Crack detection of pytoch migration learning Version (resnet50)
- Convert the image file to Base64 through JS and compress it
- uniapp小程序底部弹出窗口
- Solve the problem that QT cannot find Qt platform plug-ins
- new URLSearchParams() 内置对象获取地址栏的参数 通过键的方式拿到值
- gan01
- Transaction processing (combined with distributed transactions)
猜你喜欢
Analog image encryption and decryption
uniapp中引入自定义图标
电源学习(1)——电源系统测试
【Mindspore】【lite端侧训练推理】Mindspore lit按照使用说明文档跑LeNet训练示例代码报错
模拟图像加密、解密
Block level element block inline element inline inline block level element inline block and mutual conversion
【论文导读】DAG-GNN: DAG Structure Learning with GNN
yolov2
LSTM 股价预测pytorch
YOLOv1详解
随机推荐
JS motion function encapsulation function, involving whether the speed is uniform, target value, JSON parameters, etc
mindspore《实现一个图片分类应用》 运行错误
使用pynative模式如何进行迁移学习?
[summary of some knowledge points about Gran DAG]
Single chip microcomputer 2 - digital tube static display
js Qrcode. JS to display text content through QR code
uniapp小程序底部弹出窗口
【论文导读】Selecting Data Augmentation for Simulating Interventions
What are the methods to find top k
YOLOv3详解
ashx aspx
使用SQL语句创建并管理数据库
mindspore官网教程中冻结网络参数怎么理解,能否解释下?
Database transactions (combined with MySQL)
Uniapp wechat applet sharing and friend circle sharing function
yolov1
RESNET and mobilenet
yolov2
YOLOv1详解
【Mindspore学习】【多标签分类】是否有图像多标签分类样例