首先,我们需要生成一个600x600的灰色图像,其中中间300x300的区域为蓝色。然后,将灰色区域变为黄色,蓝色区域变为红色。将图像二值化,使中间区域为白色,周围区域为黑色。 以下是使用Python和OpenCV实现的代码: ```python import cv2 import numpy as np # 创建一个600x600的灰色图像,中间300x300的区域为蓝色 img = np.full((600, 600, 3), [127, 127, 127], dtype=np.uint8) blue_region = np.full((300, 300, 3), [255, 0, 0], dtype=np.uint8) img[150:450, 150:450] = blue_region # 将灰色区域变为黄色,蓝色区域变为红色 yellow = np.array([0, 255, 255], dtype=np.uint8) red = np.array([0, 0, 255], dtype=np.uint8) img[img == [127, 127, 127]] = yellow img[img == [255, 0, 0]] = red # 将图像二值化,使中间区域为白色,周围区域为黑色 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) _, binary_img = cv2.threshold(gray_img, 127, 255, cv2.THRESH_BINARY) # 显示图像 cv2.imshow("Original Image", img) cv2.imshow("Binary Image", binary_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码首先创建了一个600x600的灰色图像,并将中间300x300的区域设置为蓝色。接下来,将灰色区域变为黄色,蓝色区域变为红色。然后,将图像转换为灰度图,并使用阈值进行二值化。显示原始图像和二值化后的图像。 [2024-10-17 10:27:19 | AI写代码神器 | 535点数解答]