opencv python输出图像的宽高
时间: 2023-11-11 17:05:10 浏览: 92
在 OpenCV 中,可以使用 `shape` 方法来获取图像的宽高,返回一个包含图像高度和宽度的元组。在 Python 中,可以使用以下代码获取图像的宽高:
```python
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 获取图像的宽高
height, width, channels = img.shape
print('图像宽度:', width)
print('图像高度:', height)
```
其中,`img.shape` 返回一个包含图像高度、宽度和通道数的元组,我们只需要取前两个元素即可获取图像的宽高。
相关问题
opencv python文本输出
在Python中使用OpenCV输出文本可以通过Pillow库来实现。下面是一个示例代码,其中使用了Pillow库中的Image、ImageDraw和ImageFont模块来创建图像并输出文本:
```
import cv2
import numpy as np
from PIL import Image, ImageDraw, ImageFont
# 创建一个白色背景的图像
img = np.full((512, 512, 3), 255, np.uint8)
# 将numpy数组转换为PIL图像
img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
# 设置文本内容、起始位置、字体类型和大小
text = 'Hello, OpenCV!'
start = (10, 200)
fonttype = 'msyh.ttc'
fontscale = 30
# 加载字体并创建绘图对象
font = ImageFont.truetype(fonttype, fontscale)
draw = ImageDraw.Draw(img_pil)
# 在图像上绘制文本
draw.text(start, text, font=font, fill=(255, 0, 0))
# 将PIL图像转换为numpy数组,并将BGR格式转换为RGB格式
img_ocv = np.array(img_pil)
img = cv2.cvtColor(img_ocv, cv2.COLOR_RGB2BGR)
# 显示图像
cv2.imshow('Output', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
opencv python 计算图像信噪比
在 OpenCV Python 中计算图像的信噪比(PSNR)可以使用以下代码:
```python
import cv2
import numpy as np
# 读取图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 计算 MSE
mse = np.mean((img1 - img2) ** 2)
# 计算 PSNR
if mse == 0:
psnr = 100
else:
psnr = 10 * np.log10(255 ** 2 / mse)
print("PSNR:", psnr)
```
其中,`img1`和`img2`分别表示需要比较的两张图像,可以根据实际情况替换为自己的图像。最后输出的 `psnr` 单位为分贝(dB),数值越大表示两张图像越相似,图像质量越高。
阅读全文