【发布时间】:2021-08-04 15:34:18
【问题描述】:
我想更改图像的特定部分的颜色,但在 Visual Studio Code 中运行代码不会显示图像;但是,在 replit 中会显示图像。
在代码中,我展示了如何开发一个识别给定点颜色的函数,然后;这个点由用户给定的颜色改变
'#### 更新 [ 我解释我的代码 想象一下,你有一个棋盘。点 (10,10) 属于 A8;然后程序识别该点的颜色,然后将框的颜色更改为给定的颜色。 说明: 给定点是 i 和 j;并且给定的颜色是红色,绿色,蓝色都在函数参数中设置 ]
import sys
sys.setrecursionlimit(100000)
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
def ejercicio(i, j, RED, GREEN, BLUE, imagePath="imagen1.png"):
imagen = Image.open(imagePath)
punto_color = []
pixel = imagen.load()
punto_color.append(pixel[i, j][0])
punto_color.append(pixel[i, j][1])
punto_color.append(pixel[i, j][2])
print(punto_color)
def color(color):
if color[0] == punto_color[0] and color[1] == punto_color[1] and color[2] == punto_color[2]:
return True
else:
return False
def paint(matrix, i, j):
if color(matrix[i][j]):
matrix[i][j] = [RED, GREEN, BLUE]
paint(matrix, i, j - 1)
paint(matrix, i, j + 1)
paint(matrix, i + 1, j)
paint(matrix, i - 1, j)
else:
return
matrix = np.array(imagen)
paint(matrix, i, j)
plt.imshow(matrix)
plt.show()
return Image.fromarray(matrix)
print(ejercicio(400, 200, 0, 0, 0))
【问题讨论】:
-
非常快速(和肮脏)的解决方法 - 通常适用于终端和 vscode,试一试 plt.show(block=False) input('press 继续')
-
不行
标签: python image function matplotlib rgb