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

目录

效果不理想

代码: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()
相关推荐
AI视觉网奇2 分钟前
S2CRNet 图像测评笔记 图像融合
笔记·计算机视觉
hsg773 分钟前
AI绘图:开源Stable Diffusion 3 ComfyUI下载安装方法
人工智能·stable diffusion
思通数科x11 分钟前
AI监控赋能健身馆与游泳馆全方位守护,提升安全效率
人工智能·安全·目标检测·机器学习·计算机视觉·自然语言处理·ocr
宸码31 分钟前
【机器学习】【无监督学习——聚类】从零开始掌握聚类分析:探索数据背后的隐藏模式与应用实例
人工智能·python·学习·算法·机器学习·数据挖掘·聚类
**之火32 分钟前
(六)机器学习 - 正态数据分布
人工智能·机器学习
sirius123451231 小时前
使用open-cv实现图片添加水印
图像处理·opencv·计算机视觉
铭瑾熙1 小时前
机器学习之强化学习
人工智能·机器学习
自信的小螺丝钉1 小时前
【AI知识】有监督学习之回归任务(附线性回归代码及可视化)
人工智能·回归·有监督学习
视觉语言导航1 小时前
西工大经典力作!AerialVLN:空中无人机视觉语言导航数据集
人工智能·具身智能
量子-Alex1 小时前
【反无人机目标检测与跟踪】DUT Anti-UAV数据集介绍
人工智能·目标检测·无人机