脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 如何利用OpenCV进行特征(颜色、形状)提取

如何利用OpenCV进行特征(颜色、形状)提取

2023-02-10 12:17liiiiiiiiiiiiike Python

特征提取是降维过程的一部分,其中原始数据的初始集被划分并减少到更易于管理的组,这篇文章主要给大家介绍了关于如何利用OpenCV进行特征(颜色、形状)提取的相关资料,需要的朋友可以参考下

图像处理

图像处理所做的只是从图像中提取有用的信息,从而减少数据量,但保留描述图像特征的像素。

下面从图像中提取颜色、形状和纹理特征的方法开始

 

1. 颜色

每次处理图像项目时,图像的色彩空间都会成为最先探索的地方,而我们最常用的就是RGB色彩空间。那么接下来使用OpenCV,我们可以将图像的颜色空间转换为HSV、LAB、灰度、YCrCb、CMYK等。

a. HSV(色相饱和度值)

  • 色调H:描述主波长,是指定颜色的通道
  • 饱和度S:描述色调/颜色的纯度/色调
  • 值V:描述颜色的强度
import cv2
from google.colab.patches import cv2_imshow

image = cv2.imread(image_file)
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
cv2_imshow(hsv_image)

下图为RGB和HSV

如何利用OpenCV进行特征(颜色、形状)提取

b. LAB

  • L:描述颜色的亮度,与强度互换使用
  • A : 颜色成分范围,从绿色到品红色
  • B:从蓝色到黄色的颜色分量
import cv2
from google.colab.patches import cv2_imshow

image = cv2.imread(image_file)
lab_image = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
cv2_imshow(lab_image)

下图为RGB和LAB颜色空间可视化

如何利用OpenCV进行特征(颜色、形状)提取

b. YCrCb

  • Y : 伽马校正后从 RGB 颜色空间获得的亮度
  • Cr:描述红色 分量与亮度的距离
  • Cb:描述蓝色 (B) 分量与亮度的距离
import cv2
from google.colab.patches import cv2_imshow

image = cv2.imread(image_file)
ycrcb_image = cv2.cvtColor(image, cv2.COLOR_BGR2YCrCb)
cv2_imshow(ycrcb_image)

下图为RGB 与 YCrCb 颜色空间

如何利用OpenCV进行特征(颜色、形状)提取

一旦我们已经识别或探索了足够多的图像色彩空间,并确定我们只对单个通道感兴趣,我们就可以使用*cv2.inRange()*来屏蔽不需要的像素。这在 HSV 颜色空间中尤其实用。

import cv2
from google.colab.patches import cv2_imshow

# Reading the original image
image_spot = cv2.imread(image_file)
cv2_imshow(image_spot)

# Converting it to HSV color space
hsv_image_spot = cv2.cvtColor(image_spot, cv2.COLOR_BGR2HSV)
cv2_imshow(hsv_image_spot)

# Setting the black pixel mask and perform bitwise_and to get only the black pixels
mask = cv2.inRange(hsv_image_spot, (0, 0, 0), (180, 255, 40))
masked = cv2.bitwise_and(hsv_image_spot, hsv_image_spot, mask=mask)
cv2_imshow(masked)

RGB vs HSV vs Masked 图像使用 cv2.inRange() 检索黑点

如何利用OpenCV进行特征(颜色、形状)提取

 

2. 形状

一旦我们充分探索了颜色特征,我们可能会在某个时候想要提取图像中的形状。例如,我们任务是找到不同类型的杯子,而颜色不是特别重要。同样,需要做的就是将图像转换为其他颜色空间,看看是否有任何颜色空间会使对象的边缘或形状更加突出,然后我们就可以使用cv2.finContours来检索图像中的所有轮廓。具体使用方式可以查看OpenCV文档

总结

到此这篇关于如何利用OpenCV进行特征(颜色、形状)提取的文章就介绍到这了,更多相关OpenCV特征提取内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_45074568/article/details/124869976

延伸 · 阅读

精彩推荐
  • PythonPython对象的底层实现源码学习

    Python对象的底层实现源码学习

    这篇文章主要为大家介绍了Python对象的底层实现源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    Blanker_7114282023-02-07
  • PythonPython持续监听文件变化代码实例

    Python持续监听文件变化代码实例

    这篇文章主要介绍了Python持续监听文件变化代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以...

    Mars.wang6162020-07-22
  • Python基于python的多进程共享变量正确打开方式

    基于python的多进程共享变量正确打开方式

    下面小编就为大家分享一篇基于python的多进程共享变量正确打开方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Nicoder10702021-02-07
  • PythonPyCharm设置SSH远程调试的方法

    PyCharm设置SSH远程调试的方法

    这篇文章主要介绍了PyCharm设置SSH远程调试的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    mehome11292021-03-18
  • Python如何利用python读取图片属性信息

    如何利用python读取图片属性信息

    这篇文章主要介绍了如何利用python读取图片属性信息,文章围绕python读取信息相关资料展开全文,具有一定的参考价值,需要的小伙伴可以参考一下...

    alex180112002022-10-28
  • PythonPython实战之实现简单的名片管理系统

    Python实战之实现简单的名片管理系统

    这篇文章主要介绍了Python实战之实现简单的名片管理系统,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下...

    奈落~7322021-10-20
  • PythonPython中音频处理库pydub的使用教程

    Python中音频处理库pydub的使用教程

    这篇文章主要给大家介绍了关于Python中音频处理库pydub的使用教程,pydub是Python中用户处理音频文件的一个库,文中介绍的非常详细,对大家具有一定的参考...

    gent__chen13122020-11-15
  • Pythonpython操作xlsx格式文件并读取

    python操作xlsx格式文件并读取

    python操作xlsx格式文件是比较常见的一个问题,本文给大家介绍xlrd库读取,pandas库读取的实例代码,给大家讲解的很详细,需要的朋友跟随小编一起看看吧...

    不想秃头的晨晨12802021-11-19