OpenCV默认颜色通道

网上查了一下,OpenCV读取图片之后Mat默认的颜色通道都说是BGR,有点不信,试了一下,先用PS做一张纯色的图片,还有颜色的RGB值

     

然后用OpenCV读取图片之后读取RGB值逐一显示出来:

 1 // OpenCV_default_color_channel.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4
 5 #include "opencv2/core/core.hpp"
 6 #include "opencv2/highgui/highgui.hpp"
 7 #include "opencv2/imgproc/imgproc.hpp"
 8 #include "opencv2/imgproc/imgproc_c.h"
 9 #include <iostream>
10 #include <string>
11
12 using namespace cv;
13 using namespace std;
14
15
16 int main(int argc, char* argv[])
17 {
18     Mat src;
19     src = imread("pic.jpg");
20
21     int channel1 = 0, channel2 = 0, channel3 = 0;
22     channel1 = ((uchar *)(src.data))[0];
23     channel2 = ((uchar *)(src.data))[1];
24     channel3 = ((uchar *)(src.data))[2];
25
26     cout << "channel1:" << channel1 << endl;
27     cout << "channel2:" << channel2 << endl;
28     cout << "channel3:" << channel3 << endl;
29
30     imshow("pic", src);
31
32     waitKey(0);
33     return 0;
34
35 }

结果如下,还真是BGR的坑爹顺序:

时间: 2024-11-05 15:47:26

OpenCV默认颜色通道的相关文章

opencv学习(5)图像像素的访问、颜色通道的分离和融合

代码都是源于毛星云的<opencv3.0编程入门> 1.计时函数 getTickCount()和getTickFrequency()函数: getTickCount()函数返回CPU自某个事件以来走过的时钟周期: getTickFrequency()函数 返回CPU一秒所走的周期数: 事例: double time0=static_cast< double>(getTickCount()); //记录起始时间 // 事件的处理操作 time0=((double)getTickCou

【OpenCV入门教程之五】 分离颜色通道&amp;多通道图像混合

上篇文章中我们讲到了使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作. 而为了更好的观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整.通过OpenCV的split和merge方法可以很方便的达到目的. 一.分离颜色通道 就让我们来详细介绍一下这两个互为冤家的函数.首先是进行通道分离的split函数. <1>split函数详解 将一个多通道数组分离成几个单通道数组.ps:这里的array按

opencv图像混合,分离颜色通道、多通道图像混合

1 计算数组加权和用addWeighted函数,作用是计算两个数组(图像阵列)的加权和.原型如下: void addweighted(InputArray srcl,double alpha,InputArray src2,double beta,double gamma,OutputArray dst,int dtype=-1); uploading-image-436808.png 2 对RGB三个颜色通道的分量进行分别显示和调整用opencv中的split和merge split是将一个多

学习 opencv---(4) 分离颜色通道 &amp;&amp; 多通道混合

上篇文章中我们讲到了使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操作. 而为了更好地观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行 分割显示和调整 .通过Opencv 的split和merge 方法很方便 达到的目的. 一.分离颜色通道 先讲讲这俩个互为冤家的函数.首先讲进行通道分离的split 函数 <1>split函数详解 将一个多通道数组分离成几个单通道数组.  PS:这里的array按语境译

TPanel的默认颜色存储在dfm中,读取后在Paint函数中设置刷子的颜色,然后填充整个背景

声明如下: TCustomPanel = class(TCustomControl) private FFullRepaint: Boolean; FParentBackgroundSet: Boolean; procedure CMCtl3DChanged(var Message: TMessage); message CM_CTL3DCHANGED; protected procedure CreateParams(var Params: TCreateParams); override;

a标签默认颜色

<span style="color:#0070b8">test</span> #0070b8可以达到仿a标签默认颜色的效果

placeholder插件及placeholder默认颜色修改

1 $.fn.placeHolder = function(){ 2 $(this).each(function(i, el) { 3 var self = $(el); 4 if ($.browser.msie && !("placeholder" in $("<input/>")[0])) { 5 if(self.attr("data-placeHolder")||!self.attr("placehol

UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色

在iOS8系统下,UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色,本来设置的是绿色的:而且程序首次启动时也是系统默认的蓝色 UIImage *image=[UIImage imageNamed:@"xxxx"]; //设置选中时的图标 UIImage *selectedImage=[UIImage imageNamed: @"xxxx"]; // 声明这张图片用原图(别渲染) selectedImage = [sel

机器学习进阶-图片基本处理-ROI区域 1.img[0:200, 0:200]截取图片 2.cv2.split(对图片的颜色通道进行拆分) 3. cv2.merge(将颜色通道进行合并) 4 cur_img[:, :, 0] = 0 使得b通道的颜色数值为0

1. 截取图片的部分区域img[0:200, 0:200], 读入的图片是ndarray格式 2. b, g, r = cv2.split(img)  # 对图片的颜色通道进行拆分 3.img = cv2.merge((b, g, r))  #对图片的颜色通道进行合并 4. 对其他通道置零,只显示单个通道 cur_img[:, :, 0] = 0, cur_img[:, :, 1] = 0 代码: 只显示部分区域 import cv2 # 定义显示函数 def cv_show(name, img