通道是指调色板里的BGR:,这三个便代表着通道,我们人眼看到的图像一般就是由三通道不同的配色组成,他们的值为0~255之间,灰色度则可以用单通道表示出来。

代码实现的效果图如下,图中分别将三个通道分离成单通道,当分离后只显示单通道时,
例如:,将三通道分离后只看一通道其他两通道被挪开,出来的效果图为白色;,当分离后所要求的的通道后,其余通道为黑色;而灰色则是在中间范围。

//jun_军#include <opencv2/opencv.hpp>#include <iostream>#include <highgui.h>#include <vector>//#include "stdafx.h"using namespace std;using namespace cv;const int Kvalue = 15;void ju();Mat rg = imread("C:/Users/asus/Documents/Tencent Files/604803231/FileRecv/0.jpg");Mat bluechannel;Mat rg_1(rg.size(), rg.type());Mat dst, edge, gray;int main(int argc, char** argv) {rg_1 = Scalar::all(0);//声明一个三通道图像,像素值全为0,用来将霍夫变换检测出的圆画在上面Mat rg_gray;//彩色图像转化成灰度图cvtColor(rg, rg_gray, COLOR_RGB2GRAY);//Mat greenchannel;//Mat redchannel;vector<Mat> channels;if (!rg.data) {printf("could not load image...\n");return -1;}ju();//调用自定义的画矩形框函数//通道分离split(rg, channels);//使用通道分离函数bluechannel = channels.at(0);/*greenchannel = channels.at(1);redchannel = channels.at(2);*///边缘检测dst.create(bluechannel.size(), bluechannel.type());blur(bluechannel, edge, Size(3, 3));//先使用3x3内核降噪Canny(edge, edge, 3, 9, 3);         //运行canny算子//ju_l();//霍夫原理找圆vector<Vec3f> circles;HoughCircles(rg_gray, circles, CV_HOUGH_GRADIENT,1.6, //累加器图像的分辨率,增大则分辨率变小10,  //很重要的一个参数,告诉两个圆之间的距离的最小距离,如果已知一副图像,可以先行计//算出符合自己需要的两个圆之间的最小距离。230, //canny算法的阈值上限,下限为一半(即100以上为边缘点,50以下抛弃,中间视是否相连而定)40,  //决定成圆的多寡 ,一个圆上的像素超过这个阈值,则成圆,否则丢弃72,  //最小圆半径,这个可以通过图片确定你需要的圆的区间范围85   //最大圆半径);cout << circles.size() << endl;cout << "x=\ty=\tr=" << endl;for (size_t i = 0; i < circles.size(); i++)//把霍夫变换检测出的圆画出来{Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));int radius = cvRound(circles[i][2]);circle(rg_1, center, 0, Scalar(0, 0, 255), -1, 8, 0);circle(rg_1, center, radius, Scalar(255, 0, 0), 1, 8, 0);cout << cvRound(circles[i][0]) << "\t" << cvRound(circles[i][1]) << "\t"<< cvRound(circles[i][2]) << endl;//在控制台输出圆心坐标和半径                }imshow("input image", rg);//imshow("<1>蓝色通道图像", bluechannel);imshow("取圆", rg_1);imshow("边缘检测效果图", edge);//imshow("<2>绿色通道图像", greenchannel);//imshow("<3>红色通道图像", redchannel);waitKey(0);return 0;}void ju() {Rect rect = Rect(80, 188, 148, 148); //前两参数为起始坐标,后两参数为所画矩形的宽高Scalar color = Scalar(0, 0, 255);       //定义矩形线框的颜色rectangle(rg_1, rect, color, 2, LINE_8); //在背景图像上画一线宽为2的定义好的线框}

opencv读取颜色通道相关推荐

  1. opencv的颜色通道顺序为[B,G,R],matplotlib的颜色通道顺序为[R,G,B]

    python读取图像 原图: import cv2  # 利用opencv读取图像 import numpy as np # 利用matplotlib显示图像 import matplotlib.py ...

  2. 三:OpenCV图片颜色通道数据转换

    对图片进行操作时经常会涉及到不同通道数据提取,在OpenCV中提供了很多比较便捷的操作函数,本文涉及函数如下: 1.cvtColor 颜色空间转换 2.convertTo 图片数据类型转换 3.spl ...

  3. Python OpenCV基于颜色通道分离法去除图片中的红色印章

    最近一段时间的工作都是研究如何去除图片中的红色印章,在网上查找了大量的大佬写过的方法,发现大多数是采取颜色通道分离法来做,并且效果还不错.站在前人的肩膀上,我又做了些许调整,谈不上是改进,但是能应对更 ...

  4. opencv读取四通道图像

    用opencv读取图像,默认情况下是读取BGR三通道,alpha通道是被舍弃的,这在处理一些透明图的时候会出错. img = cv2.imread(image_path,-1) img = cv2.i ...

  5. OpenCV开发笔记(十):OpenCV图像颜色通道分离和图像颜色多通道混合

    若该文为原创文章,未经允许不得转载 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/101420314 各位读者,知识无穷而人力有穷, ...

  6. python下:用 matplotlib.pyplot 显示 Opencv 读取的图像

    在涉及图像处理时,我们通常用opencv去读取并处理图像,而用matplotlib去显示图像,因为opencv有很强的图像处理能力,而matplotlib有很强的可视化能力,可以方便的可视化分析实验的 ...

  7. 【opencv】(1) 基础操作:图像视频读取、图像截取、颜色通道

    主要内容有:图像及视频的读取和保存.图像显示.转换灰度图.图像截取.颜色通道提取和组合 那我们开始吧. 1. 图像操作 首先我们导入opencv库,彩色图像一般都是由RGB(红绿蓝)三颜色通道构成,灰 ...

  8. Opencv图像基本操作——读取、显示、截取图像、属性、颜色通道、边界填充、图像融合

    引言 我们都会有一个疑惑:计算机眼中的图像长什么样子呢? 首先拿来一张图片分割成无数个小格,每一个小格叫做像素点,计算机中的图像是由像素点构成的像素矩阵,像素点构成它的每一个值都是在0-255之间浮动 ...

  9. 转载:【OpenCV入门教程之五】 分离颜色通道多通道图像混合

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

  10. 【OpenCV入门教程之五】 分离颜色通道多通道图像混合(转)

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/21176257 作者:毛星云(浅墨) ...

最新文章

  1. Error opening zip file or JAR manifest missing的解决方法
  2. python 赋值、表达式
  3. Malware FAQ: How does the Ptrace exploit work o...
  4. python-03 爬虫相关
  5. 【Ubuntu-opencv3.4.0-Error】对‘cv::Mat::updateContinuityFlag()’未定义的引用
  6. SpringMVC 拦截器实现
  7. C++ 面向对象 一
  8. 曲线聚类_R语言确定聚类的最佳簇数:3种聚类优化方法
  9. oracle 日期格式化_日期格式化跨年bug,是否与你不期而遇?
  10. TSOJ--2018 江苏省省赛
  11. Unity ECS 初探
  12. 1.并发问题产生的三大根源与解决sync锁 目录 1. 并发问题产生的三大根源 1 1.1. 原子性 CPU缓存会导致可见问题 指令重排序 1 2. 并发问题根源之一:CPU切换线程执导致的
  13. 东沃电子:瞬态电压抑制二极管选型指南
  14. 10大人生感悟助你走向成功之路
  15. hr标签和注释的总结
  16. Procmon监控软件使用教程
  17. 从入门到放弃系列-傅里叶变换,拉普拉斯变换,Z变换
  18. 区块链教程、区块链指南、区块链中文手册、区块链原理
  19. maven仓库配置及搜索顺序
  20. android记事本答辩ppt,毕业答辩-基于android记事本软件的设计与实现.ppt

热门文章

  1. H5大番薯(源码+数据库脚本)
  2. 托业阅读时间怎么安排【zhasite】
  3. matlab实现简单图形的识别二
  4. mysql前台工具下载_phpmyadmin工具下载
  5. 解决microsoft store需要联网 你似乎没有联网
  6. pandas的apply中的x到底是什么
  7. 八皇后问题(Queen8)思路分析+源码
  8. 小能手英语口语学习笔记 2 发音规则-连读、略读、浊化
  9. 192.168.0.1路由器设置进入
  10. 记一个embed嵌入flash、mp4播放视频