2024年最全【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【4,字节跳动视频面试一般多久 几轮

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

hsv_image = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)

拆分HSV图像中的通道

h, s, v = cv2.split(hsv_image)
cv2.imshow(“H”, h) # 显示HSV图像中H通道的图像
cv2.imshow(“S”, s) # 显示HSV图像中S通道的图像
cv2.imshow(“V”, v) # 显示HSV图像中V通道的图像
cv2.waitKey()
cv2.destroyAllWindows()


运行这段代码,会得到如下面所示的4个窗口。其中,图5是原图像,图6是H通道图像,图7是S通道图像,图8是V通道图像。





![](https://img-blog.csdnimg.cn/img_convert/f032c5193a944ca5ac5ac592d2d64ec7.png)






![](https://img-blog.csdnimg.cn/img_convert/aca151a6ddaa469d9e40c282d8f85e44.png)






![](https://img-blog.csdnimg.cn/img_convert/3b8379bbecf24b9a8ded8b0b57702bf9.png)






![](https://img-blog.csdnimg.cn/img_convert/736fb8a6d0224685ab4fa3e49a1dd848.png)



合并通道是拆分通道的逆过程。在前面的部分将BGR通道和HSV通道各拆分成3个通道,如果将这3个通道合并,会恢复原来的图像。合并通道的功能是通过merge函数实现的。


### 3. 合并B通道图像、G通道图像和R通道图像


merge函数用于按B、G、R顺序合并通道,如果按这个顺序传入通道图像,就可以得到原图像。merge函数的原型如下:



cv.merge([b, g,r])->dst


参数说明:


* b:B通道图像。


* g:G通道图像。


* r:R通道图像。


* dst:按B、G、R顺序合并通道后得到的图像。


下面的代码先拆分flower.jpg图像中的通道,然后分别按B、G、R和R、G、B的顺序合并通道,最后分别显示按不同顺序合并通道后的彩色图像。代码如下:



import cv2
rgb_image = cv2.imread(“images/flower.jpg”)
b, g, r = cv2.split(rgb_image)

按B、G、R顺序合并通道

bgr = cv2.merge([b, g, r])
cv2.imshow(“BGR”, bgr)

按R、G、B顺序合并通道

rgb = cv2.merge([r, g, b])
cv2.imshow(“RGB”, rgb)
cv2.waitKey()
cv2.destroyAllWindows()


运行这段代码,会得到如下面所示的2个窗口。其中,图9得到了原图像,而图10尽管是彩色图像,但与原图像有一些差异。





![](https://img-blog.csdnimg.cn/img_convert/55b489822b0f40a7b9b57b8b34f3b6ed.png)






![](https://img-blog.csdnimg.cn/img_convert/65077d690dff456fae2e3bcf649cbe38.png)



### 4. 合并H通道图像、S通道图像和V通道图像


当向merge函数传入H通道图像、S通道图像和V通道图像时,该函数就会将这3个通道合并成一个彩色图像。合并这3个通道的merge函数原型如下:



cv.merge([h, s,v])->dst


参数说明:


* h:H通道图像。


* s:S通道图像。


* v:V通道图像。


* dst:按H、S、V顺序合并通道后得到的图像。


下面的例子将flower.jpg从BGR色彩空间转换到HSV色彩空间,然后拆分得到HSV图像中的通道,接着合并拆分后的通道图像。最后分别显示原图像、HSV图像和合并后的HSV图像。代码如下:



import cv2

rgb_image = cv2.imread(“images/flower.jpg”)

显示原图像

cv2.imshow(“flower”, rgb_image)

将图像从BGR色彩空间转换到HSV色彩空间

hsv_image = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)

显示HSV色彩空间中的图像

cv2.imshow(“HSV1”,hsv_image)

将HSV图像拆分成3个通道图像

h, s, v = cv2.split(hsv_image)

合并3个通道图像未HSV图像

hsv = cv2.merge([h, s, v])

显示合并后的HSV图像

cv2.imshow(“HSV2”, hsv)
cv2.waitKey()
cv2.destroyAllWindows()


运行这段代码,会得到如下面所示的3个窗口。其中,图11是原图像,图12和图13的效果一样,都是HSV色彩空间的图像。也就是说,一旦将图像从BGR色彩空间转换到HSV色彩空间,尽管也是彩色图像,不过与原图像有一定的差异,而且是无法还原的。





![](https://img-blog.csdnimg.cn/img_convert/698ce3fc55ed45638f3b83792b6687d9.png)






![](https://img-blog.csdnimg.cn/img_convert/1491ff4bc2954d4e8881f6866a22374b.png)






![](https://img-blog.csdnimg.cn/img_convert/4de47033d959492e95a17d1ff4c506ce.png)



### 5. alpha通道


BGR色彩空间包含3个通道,即B通道、G通道和R通道。OpenCV在这3个通道的基础上,又增加了一个A通道,即alpha通道,用于设置图像的透明度。所以,一个新的BGRA色彩空间诞生了,这个色彩空间由4个通道组成,即B通道、G通道、R通道和A通道。alpha通道在[0, 255]内取值;其中,0表示透明,255表示不透明。


下面的例子将flower.png图像从RGB色彩空间转换到BGRA色彩空间;然后将图像拆分成B通道、G通道、R通道和A通道;接着将图像的透明度调整为150,合并拆分后的4个通道,按同样的方法,再将图像的透明度调整为0,合并拆分后的4个通道;接下来显示合并后的结果,最后保存合并后的结果。



import cv2

rgb_image = cv2.imread(“images/flower.png”)

将RGB色彩空间的图像转换为RGBA色彩空间的图像

rgba_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2RGBA)

显示RGBA色彩空间的原图像

cv2.imshow(‘RGBA’, rgb_image)

将RGBA色彩空间的图像拆分成R通道、G通道、B通道和A通道

r, g, b, a = cv2.split(rgba_image)

将透明度修改为150

a[:, :] = 150

合并4个通道

rgba_150 = cv2.merge([r, g, b, a])

将透明度修改为0

a[:, :] = 0

合并4个通道

rgba_0 = cv2.merge([r, g, b, a])

显示透明度为150的图像

cv2.imshow(‘A = 150’, rgba_150)

显示透明度为0的图像

cv2.imshow(‘A = 0’, rgba_0)

保存原图像

cv2.imwrite(‘images/flower_image.png’,rgba_image)

保存透明度为150的原图像

cv2.imwrite(‘images/flower_150.png’, rgba_150)

保存透明度为0的图像

cv2.imwrite(‘images/flower_0.png’, rgba_0)
cv2.waitKey()
cv2.destroyAllWindows()


运行程序,会看到如图14、图15和图16所示的效果。





![](https://img-blog.csdnimg.cn/img_convert/6798199fe8cc43cda0330b754396456f.png)






![](https://img-blog.csdnimg.cn/img_convert/0bb5ebbf3aeb4585a1d126731c914b5d.png)






![](https://img-blog.csdnimg.cn/img_convert/bf6cfd6078b8475d85351e1e0611a7b3.png)





### 最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~  

给大家准备的学习资料包括但不限于:  

Python 环境、pycharm编辑器/永久激活/翻译插件  

python 零基础视频教程  

Python 界面开发实战教程  

Python 爬虫实战教程  

Python 数据分析实战教程  

python 游戏开发实战教程  

Python 电子书100本  

Python 学习路线规划

![](https://img-blog.csdnimg.cn/d29631674929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值