numpy操作數組輸出圖片(二)


def inverse(image):
    dst=cv.bitwise_not(image)
    cv.imshow('reverse',dst)

src=cv.imread('yiner.jpg')
cv.namedWindow('before',cv.WINDOW_NORMAL)
cv.imshow('before',src)

t1=cv.getTickCount()
inverse(src)
t2=cv.getTickCount()

time = (t2 - t1)*1000/cv.getTickFrequency()
print('time:%s'%time)
cv.waitKey(0)
cv.destroyAllWindows()

 

一 讀取一張圖片,修改顏色通道后輸出

 

# -*- coding:GBK -*-
import cv2 as cv
import numpy as np

def access_pixles(image):

    print(image.shape)
    height=image.shape[0]
    width=image.shape[1]
    channel=image.shape[2]
    print(f'width:{width},channel:{channel},height:{height}')
    #統一修改每個像素點的值
    for row in range(height):
        for col in range(width):
            for c in range(channel):
                pv=image[row,col,c]
                image[row,col,c]=255-pv
    cv.imshow('修改后',image)

src=cv.imread('./ym.jpeg')
#cv.namedWindow("原來", cv.WINDOW_NORMAL)
cv.imshow('修改前',src)
#毫秒級別的計時函數,記錄了系統啟動以來的時間毫秒
t1=cv.getTickCount()
access_pixles(src)
t2=cv.getTickCount()
#getTickFrequency用於返回CPU的頻率,就是每秒的計時周期數
time=(t2-t1)*1000/cv.getTickFrequency()
print('time:%s'%time)
cv.waitKey(0)
cv.destroyAllWindows()

原圖:

 

修改后的圖片:

 

 

 

 二 自制圖片

  • 1 3通道圖片

代碼

import cv2 as cv
import numpy as np

def create_image():
    img=np.zeros([400,400,3],np.uint8)
    #3個通道的像素值都為255
    img[:,:,0]=np.ones([400,400])*255
    img[:,:,1]=np.ones([400,400])*255
    img[:,:,2]=np.ones([400,400])*255
    cv.imshow('zizhi_pic',img)

create_image()
cv.waitKey(0)
cv.destroyAllWindows()

 

 

 

  •  單通道圖片
import cv2 as cv
import numpy as np


def create_image():
    img = np.ones([400, 400, 1], np.uint8)
    img = img * 127
    cv.imshow("one chan", img)


create_image()
cv.waitKey(0)
cv.destroyAllWindows()

 

  • 調用庫函數來實現像素取反

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM