zoukankan      html  css  js  c++  java
  • 2.图像方面Numpy数组相关操作

    2.图像方面Numpy数组相关操作

    In [1]:
    import cv2 as cv 
    import numpy as np
    #图片颜色反转
    def access_pixels(img):
        print(img.shape)
        height=img.shape[0]
        width=img.shape[1]
        channels=img.shape[2]#通道数量
        print("%s,height:%s,channels=%s"%(width,height,channels))
        for row in range(height):
            for col in range(width):
                for c in range(channels):
                    pv=img[row,col,c]
                    img[row,col,c]=255-pv
        cv.imshow("pixels_demo",img)
        
    #前面的access_pixels()方法可以用cv.bitwise_not()代替
    def inverse(image):
        dst=cv.bitwise_not(image)
        cv.imshow("inverse",dst)
        
    #画出蓝色的图    
    def create_image():
        #img=np.zeros([400,400,3],np.uint8)#多通道
        img=np.ones([400,400,1],np.uint8)#单通道
        #画灰度图
        img=img*127
        #画蓝色图
        #img[:,:,0]=np.ones([400,400])*255
        cv.imshow("new image",img)
        cv.imwrite("./gray.png",img)
        
    print("---hello-----")
    src=cv.imread("aaa.png",cv.WINDOW_AUTOSIZE)
    #窗口名字
    cv.namedWindow("picture1",0)
    cv.imshow("picture1",src)
    t1=cv.getTickCount()
    create_image()
    access_pixels(src)
    inverse(src)
    t2=cv.getTickCount()
    #getTickCount():用于返回从操作系统启动到当前所经的计时周期数,看名字也很好理解,get Tick Count(s)。 
    #getTickFrequency():用于返回CPU的频率。get Tick Frequency。这里的单位是秒,也就是一秒内重复的次数。
    #总次数/一秒内重复的次数 = 时间(s) 
    print("time:%s ms"%((t2-t1)/cv.getTickFrequency()+1000))
    
    cv.waitKey(0)
    cv.destroyAllwindows()
    
     
    ---hello-----
    (96, 89, 3)
    89,height:96,channels=3
    time:1000.2815058 ms
    
     
     
     

    原图:

     

    灰色图片:

     

    pixel_demo输出的图片:

     

    inverse输出图片:

  • 相关阅读:
    1030 完美数列 (25 分)
    1029 旧键盘 (20 分)
    数据库命令失败原因汇总
    代码有中文括号,导致错误
    win10笔记本触控板使用指南
    (已解决)vsC#控制台应用添加System.Windows.Forms引用失败(精通C#)
    ildasm中Ctrl+M闪退的问题(已解决, 精通C# 15.1)
    C#控制台应用(.NET Core)添加System.Windows.Forms失败(已解决)
    知识点_指针_增加对指针的理解
    自己写出的Bug_应是%f却写成%d
  • 原文地址:https://www.cnblogs.com/AI-robort/p/13377806.html
Copyright © 2011-2022 走看看