图像像素变换

import cv2 as cv
import numpy as np


def access_pixels(image):
    print(image.shape)
    height = image.shape[0]
    width = image.shape[1]
    channels = image.shape[2]
    print('width:{}, height:{}, channels:{}'.format(width, height, channels))
    for row in range(height):
        for col in range(width):
            for c in range(channels):
                pv = image[row, col, c]
                image[row, col, c] = 255 - pv
    cv.imshow('pixels_demo', image)

def inverse(imge):
    dst = cv.bitwise_not(imge)   #像素取反
    cv.imshow('inverse demo', dst)

def create_image():
    '''
    img = np.zeros([400, 400, 3], np.uint8)
    img[:, :, 0] = np.ones([400, 400])*255
    cv.imshow('new_image', img)

    img = np.ones([400, 400, 1], np.uint8)
    img = img*0
    cv.imshow('new image', img)
    cv.imwrite('myimg.png', img)
    '''
    m1 = np.ones([3,3], np.float32)
    m1.fill(12222.388)
    print(m1)

    m2 = m1.reshape([1, 9])
    print(m2)

    m3 = np.array([[2,3,4],[4,5,6],[7,8,9]], np.int32)
    m3.fill(9)
    print(m3)



src = cv.imread('./0.png')     #blue, green, red
cv.namedWindow('input image', cv.WINDOW_AUTOSIZE)
cv.imshow('input image', src)
t1 = cv.getTickCount()
# access_pixels(src)
create_image()
# inverse(src)
t2 = cv.getTickCount()
time = (t2-t1)/cv.getTickFrequency()
print('time:{} ms'.format(time*1000))
cv.waitKey(0)

cv.destroyAllWindows()

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2621041184@qq.com