#需求:读取lena图像,并且减小为四分之一,变成单通道灰度图像,获取图像的形状和像素个数,使用cv2库
时间: 2024-09-27 21:16:06 浏览: 34
首先,你需要安装Python的OpenCV库(cv2),如果你还没有安装,可以使用pip install opencv-python命令来安装。接下来,按照以下步骤操作:
1. **读取 Lena 图像**:
使用`cv2.imread()`函数读取 Lena 图像文件,通常Lena图片位于` cv2.data.haarcascades`路径下,例如:`lena = cv2.imread(cv2.samples.findFile('data/lenacolor.jpg'))`。
2. **缩小图像**:
要将图像缩小到原来的一半大小,你可以用`cv2.resize()`函数,传入`(0,0)`表示保持原始比例,`None`作为宽度和高度,然后指定新尺寸,比如四分之一大小:`resized_img = cv2.resize(lena, None, fx=0.5, fy=0.5)`
3. **转换为灰度图像**:
使用`cv2.cvtColor()`将颜色图像转换为灰度图像,灰色通道就是单通道,如`gray_img = cv2.cvtColor(resized_img, cv2.COLOR_BGR2GRAY)`
4. **获取图像形状和像素个数**:
可以通过`.shape`属性获取图像的维度信息,返回一个元组,第一个元素代表行数,第二个元素代表列数,第三个元素代表通道数(对于灰度图只有1)。像素总数等于行*列。例如:
```
height, width, channels = gray_img.shape
pixel_count = height * width
```
5. **显示和打印结果**:
最后,你可以用`cv2.imshow()`显示图像,记得在关闭窗口前调用`cv2.waitKey(0)`。关于像素数量,可以直接打印出来。
```python
# ...其他步骤...
# 显示灰度图像
cv2.imshow("Gray Image", gray_img)
cv2.waitKey(0)
# 输出像素数
print(f"Image shape: {height, width}, Pixel count: {pixel_count}")
```
阅读全文