Python OpenCV addWeighted图像拼接具体代码示例
时间: 2023-02-12 11:47:38 浏览: 83
使用 OpenCV 的 Python 库进行图像拼接可以使用 cv2.addWeighted() 函数。
代码示例:
```python
import cv2
# 读取图像
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
# 设置权重
alpha = 0.5
beta = 0.5
gamma = 0
# 拼接图像
dst = cv2.addWeighted(img1, alpha, img2, beta, gamma)
# 显示图像
cv2.imshow('dst', dst)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上面代码中,alpha、beta、gamma分别对应了两张图片的权重和偏移量, 可以调整这三个参数来得到最终的拼接效果。
相关问题
Python OpenCV 图像拼接具体代码示例
下面是一个使用 Python OpenCV 拼接两张图片的示例代码:
```python
import cv2
# 读取图片
img1 = cv2.imread("image1.jpg")
img2 = cv2.imread("image2.jpg")
# 拼接图片
result = cv2.hconcat([img1, img2])
# 保存拼接后的图片
cv2.imwrite("result.jpg", result)
```
这段代码读取了两张图片 "image1.jpg" 和 "image2.jpg",然后使用函数 `cv2.hconcat()` 将它们水平拼接起来。最后使用 `cv2.imwrite()` 将拼接后的图片保存到 "result.jpg" 中。
此外还有其他拼接方式如 `cv2.vconcat()` 垂直拼接,`cv2.addWeighted()` 叠加。
python客观评价图像拼接融合质量代码
以下是一个基于OpenCV库的图像拼接和融合质量评价的Python代码示例:
```python
import cv2
import numpy as np
def stitch_images(images):
stitcher = cv2.createStitcher() if cv2.__version__.startswith('3') else cv2.Stitcher_create()
status, stitched = stitcher.stitch(images)
if status == 0:
return stitched
else:
return None
def evaluate_fusion_quality(image1, image2, fused_image):
# calculate the absolute difference between the fused image and the input images
diff1 = cv2.absdiff(fused_image, image1)
diff2 = cv2.absdiff(fused_image, image2)
# calculate the mean squared error between the fused image and the input images
mse1 = np.mean(diff1 ** 2)
mse2 = np.mean(diff2 ** 2)
# calculate the peak signal-to-noise ratio (PSNR)
psnr1 = cv2.PSNR(fused_image, image1)
psnr2 = cv2.PSNR(fused_image, image2)
# calculate the structural similarity index (SSIM)
ssim1 = cv2.SSIM(fused_image, image1)
ssim2 = cv2.SSIM(fused_image, image2)
# return the evaluation metrics for both input images
return {
'mse1': mse1,
'mse2': mse2,
'psnr1': psnr1,
'psnr2': psnr2,
'ssim1': ssim1,
'ssim2': ssim2
}
# example usage
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
stitched_image = stitch_images([image1, image2])
if stitched_image is not None:
fused_image = cv2.addWeighted(image1, 0.5, image2, 0.5, 0)
metrics = evaluate_fusion_quality(image1, image2, fused_image)
print(metrics)
else:
print('Error: unable to stitch images')
```
这个代码使用OpenCV库提供的图像拼接器创建一个拼接图像,然后计算两个输入图像与融合图像之间的差异,并计算评价指标,例如均方误差(MSE),峰值信噪比(PSNR)和结构相似性指数(SSIM)。