本文介绍: image在计算机中存储的就是矩阵信息,shape信息为[height,width,C],其中height,width为图片的长宽信息。C代表图片的通道数(图片信息是保存为3通道的,即红绿蓝)。因此只要循环遍历图片矩阵中的值,使用255减去该值即可。
image在计算机中存储的就是矩阵信息,shape信息为[height,width,C],其中height,width为图片的长宽信息。C代表图片的通道数(图片信息是保存为3通道的,即红绿蓝)。
手动反转代码
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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。