本文介绍: image计算机存储就是矩阵信息shape信息为[height,width,C],其中height,width图片的长宽信息。C代表图片通道数(图片信息保存为3通道的,即红绿蓝)。因此只要循环遍历图片矩阵中的值,使用255减去该值即可

image计算机存储就是矩阵信息shape信息为[height,width,C],其中height,width图片的长宽信息。C代表图片的通道数(图片信息是保存为3通道的,即红绿蓝)。

因此只要循环遍历图片矩阵中的值,使用255减去该值即可

手动反转代码

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]
    #彩色图像的通道一般有三个,为RGB图像
    print("width: %s,height ; %s channels : %s" %(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)
    #第一个参数窗口名称第二个参数照片数据源if __name__ == '__main__':

    src = cv.imread("demo2.jpg")#blue, green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",src)

    inverse(src)
    cv.waitKey(0)
    cv.destroyAllWindows()

结果

opencv库: cv.bitwise_not()

import cv2 as cv
import numpy as  np

def inverse(image):
    dst = cv.bitwise_not(image)
    #像素取反的API等同于 access_pixels()中的取反操作cv.imshow("inverse demo", dst)

if __name__ == '__main__':

    src = cv.imread("demo2.jpg")#blue, green red
    cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)
    cv.imshow("input image",src)

    inverse(src)
    cv.waitKey(0)
    cv.destroyAllWindows()

结果与上面是一致的

原文地址:https://blog.csdn.net/Ethan_Rich/article/details/134757256

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_43938.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注