图像拼接 边缘色差, 轮廓平均值修复

目录

效果不理想

代码:lunkuo_mohu.py


效果不理想

代码:lunkuo_mohu.py

python 复制代码
import cv2
import numpy as np

img_mask = cv2.imread(r'F:\project\ronghe\Poisson-Blending-main\mask_new.jpg', 0)
img_path = r'F:\project\ronghe\Poisson-Blending-main\res2.jpg'
image = cv2.imread(img_path)

edges = cv2.Canny(img_mask, threshold1=100, threshold2=200)

if 0:#轮廓膨胀
    kernel = np.ones((5, 5), np.uint8)

    # 向外扩展(膨胀)
    dilated = cv2.dilate(edges, kernel, iterations=2)

    # 向内扩展(腐蚀)
    eroded = cv2.erode(edges, kernel, iterations=2)

    # 合并膨胀和腐蚀后的结果(实现同时向内和向外扩展)
    edges = cv2.bitwise_or(dilated, eroded)
# 获取图像的高度和宽度
height, width = edges.shape

# 创建一个输出图像,初始时与原图像相同
output_image = image.copy()

# 遍历所有边缘像素
for y in range(1, height - 1):
    for x in range(1, width - 1):
        if edges[y, x] != 0:  # 检查是否是边缘像素
            # 获取该像素周围8个邻域像素(3x3邻域内的其他8个像素)
            region = image[y - 1:y + 2, x - 1:x + 2]

            # 计算邻域像素的平均颜色(忽略中心点)
            neighbors = region[region != region[1, 1]]  # 不包括中心点
            avg_color = np.mean(image[neighbors], axis=(0, 1))  # 计算平均颜色

            # 将该边缘像素的颜色设置为平均颜色
            output_image[y, x] = avg_color.astype(np.uint8)

# 显示结果
cv2.imshow('edges', edges)
cv2.imshow('Edges Colored by Neighbors Average', output_image)

cv2.waitKey(0)
cv2.destroyAllWindows()
相关推荐
CSBLOG31 分钟前
Day30上 - ChromaDB 向量数据库
数据库·人工智能·深度学习·oracle
&zzz1 小时前
PyTorch和 torchvision 和torch 和cu1版本不匹配
人工智能·pytorch·python
DX_水位流量监测1 小时前
全自动化河道水位监测系统:实时传输与远程监控
大数据·运维·网络·人工智能·安全·信息可视化·自动化
寻找09之夏1 小时前
【人工智能】:搭建本地AI服务——Ollama、LobeChat和Go语言的全方位实践指南
人工智能·ollama·lobechat
weixin_440188593 小时前
LeRobot安装教程
人工智能·lerobot
AIGC大时代3 小时前
10个说明性写作ChatGPT提示词分享
人工智能·chatgpt·数据挖掘·数据分析·aigc
丶21363 小时前
【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用
人工智能·分类·损失函数
王了了哇4 小时前
精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】
人工智能·pytorch·深度学习·计算机视觉·transformer
程序员陆通4 小时前
使用 Python 开发一个 AI Agent 自媒体助手示例
人工智能·python·媒体
ifanatic4 小时前
[每周一更]-(第132期):AI工具集对比
人工智能