zoukankan      html  css  js  c++  java
  • opencv 图像基本操作 获取图像大小、ROI操作、通道分割与合并等

    opencv中的图像基本操作方法

    访问和修改图像某像素点的值

    函数

    a=img[y,x] #获取像素点的值
    img[y,x]=b #修改像素点的值

    实例

    import cv2 as cv
    import numpy as np
    
    img = cv.imread('baby.png')
    px = img[50,100]
    print(px)	# output:[76,94,94]
    
    # 只获取图像蓝色通道的值
    img[50,100] = [0,0,255]
    print(px)	# output:[0,0,255]
    

    获取图像属性

    获取图像形状

    height, width, channels = img.shape

    获取图像的数据类型

    img.dtype #图像数据类型一般为uint8

    获取图像总像素数

    img.size # height x width x channels

    ROI(Region of Interest)

    讲解ROI

    ROI即感兴趣区域。它是用来干什么的呢?举个例子,我们想检测人眼,这里有一张人的全身照。因为人的眼睛一定在人脸上,我们可以将ROI调整为人脸区域。这样,在进行检测时,检测的范围大大缩小,可以有效地提高程序的运行效率。

    ROI实现

    face = img[100:200,115:188]

    通道分割与合并

    彩色图的BGR三个通道是可以分开单独访问的,也可以将三个单独的通道合并成一幅图像。分别使用 cv.split() 和 cv.merge()
    b,g,r = cv.split(img)
    img = cv.merge((b,g,r))
    split() 函数比较耗时,我们可以使用索引来完成快速分割
    b = img[ :, :, 0] #获取图像蓝色通道

  • 相关阅读:
    .Proto 文件转换成.cs文件
    C# 委托和事件
    C# 对word (03、07)的相关操作
    程序中记录日志的封装类
    压缩文件程.ZIP
    xml和对象直接的序列化和反序列化
    C#判断两个日期是否在同一周,某日期是本月的第几周
    vs2008 C# 单元测试
    解压缩.zip文件
    记录一次曲折的维护-重构过程
  • 原文地址:https://www.cnblogs.com/wojianxin/p/12588190.html
Copyright © 2011-2022 走看看