用摄像头抓取实验者自己的彩色图像,转换为灰度图像,然后在一个窗口平分的8个区域中分别显示该图像的256、128、64、32、16、8、4、2色图像,并存成磁盘文件,用python给出代码并给出注释
时间: 2024-05-08 15:15:34 浏览: 121
摄像头实验(彩色,灰度,任意窗口).rar_ov7670_ov7670窗口_ov7670窗口设置_stm32 ov7670_st
5星 · 资源好评率100%
```python
import cv2
# 读取彩色图像
img = cv2.imread("test.jpg")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 定义颜色数量列表
color_nums = [256, 128, 64, 32, 16, 8, 4, 2]
# 循环生成不同颜色数量的图像并显示并存储
for i, num in enumerate(color_nums):
# 利用cv2的量化函数将灰度图像转换为指定颜色数量的图像
img_quantized = cv2.quantize(gray, colors=num, kmeansCenters=None)
# 将量化结果转换为图像格式
img_quantized = cv2.convertScaleAbs(img_quantized[0])
# 显示图像
cv2.imshow(f"{num} colors", img_quantized)
# 存储图像
cv2.imwrite(f"{num}_colors.jpg", img_quantized)
# 每个图像之间留有一定的间隔
cv2.moveWindow(f"{num} colors", (i % 4) * 250, (i // 4) * 300)
# 等待键盘输入
cv2.waitKey(0)
# 关闭所有窗口
cv2.destroyAllWindows()
```
注释见代码。
阅读全文