如何解决我可以使用 cv2 或 Numpy 来反转这张图片吗?
我可以使用 cv2 或 numpy 将图像变成负片吗?类似于下面的内容,但我仍然需要编辑。
我的问题主要是代码的顶部,是否可以使用它来将灰度和黑白都反转为负数?
import cv2
import numpy as np
img = cv2.imageread('imagename.jpg')
print(img.dtype)
image_neg = 255 - img
cv2.imshow('negative',image_neg)
cv2.waitKey(0)
##################################### #####################################
from images import Image
def invert(image):
def blackAndWhite(image):
blackPixel = (0,0)
whitePixel = (255,255,255)
for y in range(image.getHeight()):
for x in range(image.getWidth()):
(r,g,b) = image.getPixel(x,y)
average = (r + g + b) // 3
if average < 128:
image.setPixel(x,y,blackPixel)
else:
image.setPixel(x,whitePixel)
def grayscale(image):
for y in range(image.getHeight()):
for x in range(image.getWidth()):
(r,y)
r = int(r * 0.299)
g = int(g * 0.587)
b = int(b * 0.114)
lum = r + g + b
image.setPixel(x,(lum,lum,lum))
def main():
filename = input("Enter the image file name: ")
image = Image(filename)
#Invert image
invert(image)
image.draw()
#Covert to greyscale,then invert
"""grayscale(image)
invert(image)
image.draw()"""
#Convert to black and white,then invert
"""blackAndWhite(image)
invert(image)
image.draw()"""
if __name__ == "__main__":
main()
我收到以下错误:
Traceback (most recent call last):
File "invert.py",line 14,in <module>
image_neg = 255 - image
NameError: name 'image' is not defined
我把一开始的代码改成这样:
import cv2
import numpy as np
image = cv2.imageread('smokey.gif')
print(image.dtype)
image_neg = 255 - image
cv2.imshow('negative',image_neg)
cv2.waitKey(0)
好吧,我认为这会起作用,但它告诉我行 - “invertedImage = cv2.bitwise_not(imagetoInvert)”有一个 SyntaxError: invalid non-printable character U+00A0
我在这里正确编辑了我的代码(4 个空格),但我不知道为什么它仍然不能正确显示。
from images import Image
import cv2
def invert(image):
imagetoInvert = cv2.imread(filepath)
invertedImage = cv2.bitwise_not(imagetoInvert)
cv2.imgwrite("BWimage.png",invertedImage)
print("已保存反转图像")
File_path='smokey.gif'
invert(File_path)
解决方法
不确定您遇到了什么错误。也许这里的某些东西会有所帮助?
语法:cv2.cv.flip(src,flipCode[,dst])
参数: src:输入数组。 dst:与 src 大小和类型相同的输出数组。 翻转代码:指定如何翻转数组的标志; 0 表示绕 x 轴翻转,正值(例如,1)表示绕 y 轴翻转。负值(例如 -1)表示围绕两个轴翻转。
返回值:它返回一个图像。 如在 OpenCV 中发现的
example code:
# Python program to explain cv2.flip() method
# importing cv2
import cv2
# path
path = r'C:\Users\user\Desktop\geeks14.png'
# Reading an image in default mode
src = cv2.imread(path)
# Window name in which image is displayed
window_name = 'Image'
# Using cv2.flip() method
# Use Flip code 0 to flip vertically
image = cv2.flip(src,0)
# Displaying the image
cv2.imshow(window_name,image)
cv2.waitKey(0)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。