1 计算两个图的ncc 值
import torch
import torch.nn.functional as F
import cv2
import numpy as np
# 函数将 OpenCV 图像转换为 PyTorch 张量
def cv_image_to_torch_tensor(image_path):
# 使用 OpenCV 读取图像(BGR 顺序)
img_cv = cv2.imread(image_path)
# OpenCV 图像是 BGR 格式,需要转换为 RGB 格式以匹配 PyTorch 的通道顺序
img_rgb = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB)
# 将 NumPy 数组转换为 PyTorch 张量,并确保数据类型为 float32 和范围 [0, 1]
img_tensor = torch.from_numpy(img_rgb).float().div(255.0).unsqueeze(0) # unsqueeze 添加 batch dimension
return img_tensor
def cv_gray_image_to_torch_tensor(image_path):
# 使用 OpenCV 读取灰度图像
img_gray = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 将 NumPy 数组转换为 PyTorch 张量,并确保数据类型为 float32 和范围 [0, 1]
img_tensor