您好、欢迎来到现金彩票网!
当前位置:秒速牛牛计划 > 填充亮度 >

OpenCV Python 系列教程3 - Core 组件

发布时间:2019-07-03 06:58 来源:未知 编辑:admin

  若是单通道的像素,像素有 256(0-255)个值,若是三通道,则颜色数就更多(一千六百多万种),如此多的颜色进行处理,会对算法的性能造成影响。这些颜色中,有代表性的颜色只是小部分。

  颜色空间缩减(color space reduction)可以大大降低运算复杂度,具体做法是:

  img.shape # 若是彩色图像,则返回元组 1*3 # 若是灰色图像,则返回元组 1*2 只有行和列 # 此方法可以用来判断是否为彩色图像

  img.dtype 在调试时非常重要,因为大部分错误是因为无效的数据类型引起的

  该部分的功能是对图像的一小部分区域进行处理(我们感兴趣的那部分),可以减少处理时间,增加精度,给图像处理带来便利。

  本例是对找到图像中球的位置,并复制一个放在另外一个地方,注意看的话,你会发现复制的球是一个矩形,看起来并不协调?

  # 拆分每个通道 b,g,r = cv2.split(img) # 或者 b = img[:, :, 0] # 把各个通道合并起来ge((b,g,r))# 让红色通道置零,可以不用拆分红色通道,直接置零 img[:, :, 2] = 0

  cv2.split()对系统来说开销很大,所以只在需要使用的时候再使用,使用 Numpy 索引的方法更有效

  图像亮度和对比度的调整操作,属于图像操作中的点操作。点操作的特点:仅仅根据输入像素值(有时可加上某些全局信息或参数),来计算相应的输出像素值。这类算子包括:亮度(brightness)、对比度(contrast)调整、颜色校正(colorcorrection)、变换(transformations)。

  cv2.add()使用该函数操作是 Numpy 操作,两个图片应该要有一样的数据类型和深度,否则第二个图像只能是标量值。

  OpenCV 运算和 Numpy 运算有区别:OpenCV 是饱和运算,即相加最大只能是 255 ,相减最小只能是 0。Numpy 是模运算。见上面注释。

  cv2.addWeighted()两张图片以权重进行融合,使其给人一种混合或透明的感觉。图片按以下公式运算

  包括 AND、OR、NOT 和 XOR 操作。它们在提取图像的任何部分、定义和处理非矩形 ROI 时非常有用。

  # 画矩形 Rectangle = np.zeros((300, 300), dtype=uint8) cv2.rectangle(Rectangle, (25, 25), (275, 275), 255, -1) cv2.imshow(Rectangle, Rectangle) cv2.waitKey(0) # 画圆形 Circle = np.zeros((300, 300), dtype=uint8) cv2.circle(Circle, (150, 150), 150, 255, -1) cv2.imshow(Circle, Circle) cv2.waitKey(0) bit_or = cv2.bitwise_or(Rectangle, Circle) cv2.imshow(bit_or, bit_or) cv2.waitKey(0) add = cv2.add(Rectangle, Circle) cv2.imshow(add, add) cv2.waitKey(0) cv2.destroyAllWindows() x = np.uint8([10]) # 0000 1010 y = np.uint8([20]) # 0001 0100 z = np.uint8([40]) # 0010 1000 print(cv2.bitwise_or(x, y)) # 0001 1110 = 30 print(cv2.bitwise_or(x, z)) # 0010 1010 = 42

  # 画矩形 Rectangle = np.zeros((300, 300), dtype=uint8) cv2.rectangle(Rectangle, (25, 25), (275, 275), 255, -1) cv2.imshow(Rectangle, Rectangle) cv2.waitKey(0) # 画圆形 Circle = np.zeros((300, 300), dtype=uint8) cv2.circle(Circle, (150, 150), 150, 255, -1) cv2.imshow(Circle, Circle) cv2.waitKey(0) bit_xor = cv2.bitwise_xor(Rectangle, Circle) cv2.imshow(bit_xor, bit_xor) cv2.waitKey(0) cv2.destroyAllWindows()

  # 画矩形 Rectangle = np.zeros((300, 300), dtype=uint8) cv2.rectangle(Rectangle, (25, 25), (275, 275), 255, -1) cv2.imshow(Rectangle, Rectangle) cv2.waitKey(0) # 画圆形 Circle = np.zeros((300, 300), dtype=uint8) cv2.circle(Circle, (150, 150), 150, 255, -1) cv2.imshow(Circle, Circle) cv2.waitKey(0) bit_not = cv2.bitwise_not(Rectangle, Circle) cv2.imshow(bit_not, bit_not) cv2.waitKey(0) cv2.destroyAllWindows()

  要将两张图放在一起,且都是原来的图像,如上图所示,将 OpenCV logo (img2)放在 img1 上面,巧妙的利用黑色像素(0)。

  profile模块有助于获得关于代码的详细报告,比如代码中每个函数花费了多少时间、调用了多少次等等。

  OpenCV 的许多函数都是使用SSE2、AVX等优化的。它还包含未优化的代码。因此,如果我们的系统支持这些特性,我们应该利用它们(几乎所有现代处理器都支持它们)。它在编译时默认启用。OpenCV 在启用时运行优化后的代码,否则运行未优化的代码。使用来检查它是否启用/禁用,使用

  Python 标量操作比 Numpy 标量操作快。因此对于包含一个或两个元素的操作,Python 标量优于 Numpy 数组。当数组的大小稍微大一点时,Numpy 就更有优势。

  首先尝试以一种简单的方式实现该算法。一旦开始工作,对其进行分析,找到瓶颈并对其进行优化。

  即使在执行了所有这些操作之后,如果代码仍然很慢,或者不可避免地要使用大型循环,那么可以使用其他库,比如Cython来加快速度。

  来源 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇 的番外篇,因为严格来说不是在讲Python而是讲在Python下使用OpenCV。本篇将介绍和深度学习数据处理阶...

  meanshift meanshift 背后的直觉很简单,设想你有一个点集。(可以是一个像素分布,像直方图向后投影)。你得到一个小窗口(可能是个圆)并且你得移动窗口到最大像素强度的地方(或者最多点的数量) 初始化的窗口显示成蓝色圆,名字叫“C1”,它的圆心是蓝方块“C1_o...

  在传统的计算机视觉处理中,OpenCV依然是最为基础和常用的工具。 即便是如今深度学习如火如荼,在图像处理领域表现出越来越强大的潜力时,OpenCV也不失为预处理的有效手段。另外,OpenCV的工具箱里,也不断再融入机器学习的算法,充实自身才能应对变化。 之前用OpenCV...

  如opencv开发前的准备工作中所说,此系列文章是在学习Practical Python and OpenCV(点击下载)这本书的一些记录,发出来的文章跳过了第三章对RGB,以及numpy简单操作等介绍,请大家下载原书查看,在原书中对一下段落已进行翻译注释。文章系列完整展示...

  你好,这是我每天一篇与读书有关的原创文章之第7篇。希望我的文章能为喜欢阅读的你赋能。如果你看了我的文章感到有所收获,也请你为我赋能。 自去年11月27日加盟樊登读书,已近一年时间,起初加盟时甚至没有问过盈利模式,就源于对樊登读书的信任。一路走来就凭着我和搭档...

  半夜醒来1:59,上了趟洗手间,然后便了无睡意,已经两夜,分明感觉到了身体提出的信号:左腰又止不住地隐隐作痛,直到脚尖。 当我发现这份疼痛,心中不由开始烦躁不安,已经三年多没有半夜睡不着觉的经历了,习惯性失眠?不对,是心中事情太多,脑子开始运作频繁,最近已经快...

  什么是拖延: 明知不必要,却自愿进行推迟。自己设定的目标,可以行动时却自愿的推迟,自己成为目标的最大阻碍。 什么不是拖延: 拖延是生活的一部分,不完全是有害的。 首要的改变策略是:区分有害的拖延,并立刻开始行动。 有害的拖延体现在: 1.拖延时间就是拖延自己有限的生命。 2...

  城市笼罩在深重夜幕里,你纵身跳下高楼,发丝与衣衫纠缠在一起,像断线的风筝 意外的有炮弹袭来,浓烟里吞吐着滚滚火焰,你被这股热浪所淹没 他手中是冰凉的手术刀,刀刃在你的唇上一点点划出口子,鲜血殷红如百花盛放 我看见筷子搬粗细的钢针正绵密地钉入你浑身的血肉,他挥刀戳穿了自己的脚...

http://soportecliente.com/tianchongliangdu/344.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有