You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python(OpenCV、numpy、Pillow)将普通图像转为X光图像?

普通图像转X光图像的实现问题

我希望用Python结合OpenCV、numpy、Pillow将普通图像转换为X光图像,目前已经完成部分代码编写,但无法得到理想的X光效果。我尝试了多种调整方式,当前生成的结果偏暗且缺乏X光特有的通透感,和期望中那种灰蓝调、骨骼轮廓清晰的X光效果不符。

以下是我目前的代码:

import cv2
import numpy as np
from PIL import Image
import os

def apply_xray_effect(input_image_path, output_image_path):
    # 用Pillow读取输入图像
    pil_image = Image.open(input_image_path)

    # 将PIL图像转换为NumPy数组
    img_np = np.array(pil_image)

    # 复制图像用于X光效果转换
    xray_effect = img_np.copy()

    # 调整亮度和对比度
    alpha = 0.3  # 对比度调整(1.0为原对比度)
    beta = -140  # 亮度调整(0为原亮度)
    xray_effect = cv2.convertScaleAbs(xray_effect, alpha=alpha, beta=beta)

    # 应用伪色彩映射,赋予蓝调效果
    colormap = cv2.applyColorMap(xray_effect, cv2.COLORMAP_BONE)

    # 定义感兴趣区域(ROI)的参数
    x = 200  # ROI左上角X坐标
    y = 250  # ROI左上角Y坐标
    width = 300  # ROI宽度
    height = 250  # ROI高度

    # 再次将PIL图像转换为NumPy数组
    pil_image_np = np.array(pil_image)

    # 创建ROI掩码
    mask = np.zeros_like(pil_image_np)
    cv2.rectangle(mask, (x, y), (x + width, y + height), (255, 255, 255), thickness=-1)  # 用白色填充ROI

    # 应用掩码提取ROI
    roi = cv2.bitwise_and(pil_image_np, mask)

    # 修改ROI颜色(示例:转为绿色)
    roi[:, :, 0] = 0  # 关闭蓝色通道
    roi[:, :, 1] = 255  # 拉满绿色通道
    roi[:, :, 2] = 0  # 关闭红色通道

    # 保存生成的X光风格图像
    cv2.imwrite(output_image_path, colormap)


if __name__ == "__main__":
    input_image_path = r"C:\Users\Ayad\OneDrive\Desktop\girl.jpeg"  # 替换为你的输入图像路径
    output_directory = r"C:\Users\Ayad\OneDrive\Desktop"  # 输出目录路径

    output_xray_image_path = os.path.join(output_directory, "changedImg_xray.png")

    apply_xray_effect(input_image_path, output_xray_image_path)

    # 显示图像
    xray_image = cv2.imread(output_xray_image_path)

    cv2.imshow("X-ray Image", xray_image)

    cv2.waitKey(0)  # 按下任意键关闭窗口
    cv2.destroyAllWindows()

内容的提问来源于stack exchange,提问作者Antonio Dawson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:42:36