当前位置: 首页 > news >正文

邯郸质量一站式服务平台上线公司建推广网站多少钱

邯郸质量一站式服务平台上线,公司建推广网站多少钱,手机网站建设行业现状,google关键词规划师大家好,欢迎大家学习OpenCV4.8 开发实战专栏,长期更新,不断分享源码。 专栏代码全部基于C 与Python双语演示,专栏答疑群 请联系微信 OpenCVXueTang_Asst 本文关键知识点: OpenCV中默认imread函数加载图像文件&#…

大家好,欢迎大家学习OpenCV4.8 开发实战专栏,长期更新,不断分享源码。

专栏代码全部基于C++ 与Python双语演示,专栏答疑群 请联系微信 OpenCVXueTang_Asst

本文关键知识点:

OpenCV中默认imread函数加载图像文件,加载进来的是三通道彩色图像,色彩空间是RGB色彩空间、通道顺序是BGR(蓝色、绿色、红色)、对于三通道的图像OpenCV中提供了两个API函数用以实现通道分离与合并。

  • split // 通道分类
  • merge // 通道合并

扩展一下:
在很多CNN的卷积神经网络中输入的图像一般会要求[h, w, ch]其中h是高度、w是指宽度、ch是指通道数数目、OpenCV DNN模块中关于图像分类的googlenet模型输入[224,224,3]表示的就是224x224大小的三通道的彩色图像输入。

更正一下代码里面的内容关于mixchannels的 Python版本用法,参考如下代码即可:

dst = np.zeros(src.shape, dtype=np.uint8)
print(src.shape)
print(dst.shape)
cv.mixChannels([src], [dst], fromTo=[2, 0, 1, 1, 0, 2])
cv.imshow("output4", dst)

解释:

  1. mixchannels使用前必须先分配好np图像对象
  2. 前两个参数是图像数组!

在图像处理领域,通道分离(split)与合并(merge)是两个基础且重要的操作,它们允许对图像的各个颜色通道进行单独处理或修改。以下是对这两个操作的详细解释:

通道分离(split)

通道分离是指将彩色图像分解成其组成的单个颜色通道。在大多数图像处理库中,如OpenCV,彩色图像通常表示为三个通道的集合:红色(R)、绿色(G)和蓝色(B),尽管在某些情况下也可能使用其他色彩空间(如HSV或YUV),但BGR是最常见的。

  • 功能:使用split函数可以将彩色图像分成R、G、B三个单通道图像,从而方便对这三个通道分别进行操作。
  • 示例:在OpenCV中,可以使用cv.split(src)函数来实现通道分离,其中src是需要分离通道的图像数组。分离后,会得到三个单独的数组,分别代表R、G、B三个通道。
  • 注意事项:通道分离是一个比较耗时的操作,因此应在真正需要时才使用。如果只需要修改多通道图像中的某个通道的值,可以考虑使用numpy等库直接操作数组,而不是进行通道分离。

通道合并(merge)

通道合并是指将分离后的单个颜色通道重新组合成一个彩色图像。这个过程是通道分离的逆操作。

  • 功能:使用merge函数可以将多个单通道图像合并成一个多通道图像。在OpenCV中,这通常用于将R、G、B三个通道重新组合成一个彩色图像。
  • 示例:在OpenCV中,可以使用cv.merge([b, g, r])函数来实现通道合并,其中bgr分别是代表蓝色、绿色和红色通道的数组。合并后,会得到一个新的彩色图像数组。
  • 应用场景:通道合并常用于图像处理中的多种场景,如图像增强、色彩校正、图像合成等。通过修改分离后的通道并重新合并,可以实现各种图像效果。
    在这里插入图片描述

总结

通道分离与合并是图像处理中的基础操作,它们允许对图像的各个颜色通道进行单独处理或修改。这些操作在图像增强、色彩校正、图像合成等领域具有广泛的应用价值。在使用这些操作时,需要注意它们的性能和资源消耗,并根据具体需求选择适当的处理方法。

演示代码

#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char *argv[])
{Mat src = imread("D:/vcprojects/images/flower.png");if (src.empty()) {printf("could not load image...\n");return -1;}namedWindow("input", WINDOW_AUTOSIZE);imshow("input", src);vector<Mat> mv;Mat dst1, dst2, dst3;// 蓝色通道为零split(src, mv);mv[0] = Scalar(0);merge(mv, dst1);imshow("output1", dst1);// 绿色通道为零split(src, mv);mv[1] = Scalar(0);merge(mv, dst2);imshow("output2", dst2);// 红色通道为零split(src, mv);mv[2] = Scalar(0);merge(mv, dst3);imshow("output3", dst3);waitKey(0);return 0;
}

python 代码演示

import cv2 as cvsrc = cv.imread("D:/vcprojects/images/flower.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)# 蓝色通道为零
mv = cv.split(src)
mv[0][:, :] = 0
dst1 = cv.merge(mv)
cv.imshow("output1", dst1)# 绿色通道为零
mv = cv.split(src)
mv[1][:, :] = 0
dst2 = cv.merge(mv)
cv.imshow("output2", dst2)# 红色通道为零
mv = cv.split(src)
mv[2][:, :] = 0
dst3 = cv.merge(mv)
cv.imshow("output3", dst3)cv.mixChannels(src, dst3, [2, 0])
cv.imshow("output4", dst3)cv.waitKey(0)
cv.destroyAllWindows()

结束语

学习贵在坚持,学习OpenCV贵在每一天的代码练习,原理跟基本的函数解释,相关知识,后续更新边学边理解,搞技术永远要坚持做长期主义者!我们一起努力!!!

专栏答疑群 请联系微信 OpenCVXueTang_Asst

http://www.yayakq.cn/news/224713/

相关文章:

  • 神兵网站建设加盟
  • 大鹏网站建设怎样注册网店开网店
  • 网站开发费用记账淘宝权重查询入口
  • 建设网站公司需要哪些证件品牌推广全案
  • wordpress网站布置视频教程济宁嘉祥网站建设
  • 温州市企业网站制作网站模板 wordpress
  • 网站建设服务器是什么意思网站建设谈客户
  • 紫网站建设凡科网的网站免费的可以用吗
  • 网站建设责任分工南宁建站模板源码
  • 预付做网站定金如何wordpress管理员改为投稿者
  • 电子商务网站建设情况做网站被网警找
  • 做的新网站网上搜不到网站seo其应用
  • 搜房网站要怎么 做服务器时间 wordpress
  • 做网站用什么配置的笔记本洛可可设计公司市值
  • 重庆永川网站建设自己做衣服的网站
  • 服装网站栏目调研vue可以做网站吗
  • 杭州市做网站肇庆建站模板源码
  • 上海网站备案核验点建设股票网站
  • 怎么样增加网站权重网站icp申请
  • 首页网站模板中小型网站建设代理商
  • 中国八冶建设集团网站上海房产交易网站
  • 替别人做网站全部浏览器下载
  • 受欢迎的广州网站设计电商网站开发面临的技术问题
  • 360网站建设的目标是什么工业软件开发技术学什么
  • 网站有哪些费用多少钱群站wordpress
  • 五八同城网站开发了多久计算机it培训班
  • 做阿里巴巴网站图片网站模板平台
  • 网站备案一次吗传奇网页游戏开服
  • 产品介绍网站模板微信里的小程序怎么找出来
  • 公司网站建设设计公司哪家好网站优化技巧