python - 如何从图像中的对象中去除边缘噪声
问题描述
我创建了一个衣服蒙版来从图像中提取衣服对象,但是蒙版中包含一些白噪声,下图是插图(外面的黑色区域是背景)。
我想去除遮罩中的“白色”边缘噪声,我尝试过使用简单的方法检查像素值是否> = 240,结果有所改善但仍然不完美,如下图:
我想完全消除白噪声,但不知道该怎么做。我正在使用 python opencv,如果有人可以帮助我,我将不胜感激。
谢谢!
解决方案
我会建议一个简单的管道来消除你的边缘噪声:
import numpy as np
import cv2
gray = cv2.imread("t1yfp.jpg", cv2.IMREAD_GRAYSCALE)
# eliminate white blobs
kernel = np.ones((5, 5), np.float32)/25
processedImage = cv2.filter2D(gray, -1, kernel)
gray[processedImage > 100] = 0
# eliminate pixels with very large value
gray[gray > 230] = 0
# eliminate last remeaning outlier white pixels
gray = cv2.medianBlur(gray, 5)
# display result
cv2.imshow("res", gray)
cv2.waitKey(0)
推荐阅读
- apache-flink - 关于 flink 任务管理器和任务槽的核心分配
- postgresql - PostgreSQL 将无法连接
- google-bigquery - 仪表板后端的 BigQuery 与 Cloud SQL
- postgresql - postgresql 中的 Countif 等效项
- react-native - 在本机反应中找不到主模块
- amazon-web-services - 如何降低同步触发 lambda 的成本?
- random - 我想知道我如何能够让一个不和谐的机器人随机从公会中使用 discord.js ping 某人
- jquery - 我们如何区分 jQuery 中 SELECT 元素上的真实变化(值变化)和假变化(触发变化事件)
- pygame - ModuleNotFoundError:没有名为“pygame.time”的模块
- reactjs - reactjs中如何输入axios