zoukankan      html  css  js  c++  java
  • OpenCV常用基本处理函数(2)图像基本操作

    可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R 

    例如获取蓝色的像素值:

    img=cv2.imread('messi5.jpg')
    px=img[100,100]
    blue=img[100,100,0]

     获取图像属性

    图像的属性包括:行,列,通道,图像数据类型,像素数目等img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。

    1 import cv2
    2 import numpy as np
    3 img=cv2.imread('messi5.jpg')
    4 print(img.shape)
    5 ##(342, 548, 3)

    图像的roi感兴趣区域

    下面的代码是首先把球在图中的区域作为感兴趣的区域从图片中分离出来,然后再复制图片的另一区域,效果如图所示;

    1 import cv2
    2 import numpy as np
    3 img=cv2.imread('messi5.jpg')
    4 ball=img[280:340,330:390]
    5 img[273:333,100:160]=ball
    6 img=cv2.imshow('test', img)
    7 cv2.waitKey(0)

    拆分图像的三个通道

    通过对图片的属性的第三个值来分离;

    import cv2
    import numpy as np
    img=cv2.imread('/home/duan/workspace/opencv/images/roi.jpg')
    b=img[:,:,0]

    图像的扩充填边

    cv2.copyMakeBorder()函数。这经常在卷积运算或 0 填充时被用到,参数等使用的时候再理解

    图像加法  

    你可以使用函数 cv2.add() 将两幅图像进行加法运算,建议使用opencv的加法操作;

    图像混合

    这其实也是加法,但是不同的是两幅图像的权重不同

    函数 cv2.addWeighted() 可以对图片进行混合操作

    参考自:https://www.cnblogs.com/Undo-self-blog/p/8424220.html

  • 相关阅读:
    HDU题目分类
    nyoj50爱摘苹果的小明
    nyoj24大数阶乘
    hduoj1094A+B for InputOutput Practice (VI)
    nyoj198数数
    NYOJ463九九乘法表
    nyoj436sum of all integer numbers
    hduoj1042N!
    hduoj1095A+B for InputOutput Practice (VII)
    nyoj458小光棍数
  • 原文地址:https://www.cnblogs.com/ywheunji/p/10987014.html
Copyright © 2011-2022 走看看