zoukankan      html  css  js  c++  java
  • opencv-学习笔记(2)

                    opencv-学习笔记(2)


    这章记录了

    1. 获取像素点,改变像素点
    2. 获取图像的属性(行,列,通道数,数据类型)
    3. roi感应区
    4. 拆分以及合并图像通道
    5. 边缘扩充

    opencv获取像素点,改变像素点

    ----下面是一般方法

    获取像素很简单只需要img[x,y]就可以获取像素

    img[x,y,0/1/2]就可以获取brg中某一值

    修改也很简单img[100,100]=[255,255,255]即可

    ----优化

     

    我们用item获取元嵩

    itemset改变元素

    代码如下

    import numpy as np
    import cv2
    
    img=cv2.imread('1.jpg',1)
    print(img.item(10,10,2))
    img.itemset((10,10,2),100)
    print(img.item(10,10,2))

    opencv获取图像的行列和通道数

    用函数img.shape即可

    img.size获取像素数目

    img.dtype获取图像数据类型

    opencv里面一般是##uint8


    图像感应ROI

    简单获取感应区只需要

    img[100:200,0:200]#获取100列到200列,0行到200行

    import numpy as np
    import cv2
    
    img=cv2.imread('new.jpg',1)
    ball=img[100:200,0:200]#100列到200列,0行到200行
    img[400:500,400:600]=ball
    cv2.imshow('fuck',img)
    cv2.waitKey(0)

    效果如下


    opencv拆分以及合并图像通道

    cv2.namedWindow('bgr')
    img=cv2.imread('1.jpg',1)
    
    img[:,:,2]=0
    cv2.imshow('bgr',img)
    cv2.waitKey(0)

    这段代码把所有红色设为0

    得到蓝绿图

    红蓝img[:,:,1]=0

     

    最后是红绿图。


    图像边缘扩充

    cv2.copyMakeBorder(图像对象,上下左右四个边界的扩充像素,扩充方式)

     扩充方式有

     cv2.BORDER_REPLICATE

    cv2.BORDER_REFLECT

     cv2.BORDER_REFLECT_101

     cv2.BORDER_WRAP

    cv2.BORDER_CONSTANT,value=BLUE

    这里不放图了

  • 相关阅读:
    HDU
    POJ
    POJ
    POJ
    POJ
    POJ
    POJ
    SPFA算法——最短路径
    POJ1251 Jungle Roads Kruskal+scanf输入小技巧
    MongoDB--关于数据库及选择MongoDB的原因
  • 原文地址:https://www.cnblogs.com/DJC-BLOG/p/9125672.html
Copyright © 2011-2022 走看看