首頁  >  文章  >  後端開發  >  如何使用 Python 去除影像中的殘差

如何使用 Python 去除影像中的殘差

王林
王林轉載
2024-02-06 08:30:12869瀏覽

如何使用 Python 去除图像中的残差

問題內容

Image1 包含帶有殘差的矩形

和 Image2 代表所需的結果。

我想在Python中使用Image1來獲得與Image2相同的結果,但我不確定是否可能,也不知道必要的方法。

我嘗試使用圖像的透明度來刪除它,但我不確定這是否可能。


正確答案


您的「殘差」影像的飽和度低於「核心」影像,因此您可以將「殘差」與「核心」,請參考維基百科hsv 文章

使用imagemagick,我可以將您的影像轉換為hsv 色彩空間,丟棄hv 通道,然後對飽和度通道進行閾值設置以找到最飽和的區域,如下所示:

magick input.png -colorspace hsv -separate -delete 0,2 -threshold 75% rssult.png

使用 python 和 opencv,大致如下:

import cv2 as cv
import numpy as np

# Load image
im = cv.imread(YOURIMAGE)

# Convert to HSV colourspace and split channels
hsv = cv.cvtColor(im, cv.COLOR_BGR2HSV)
H, S, V = cv.split(hsv)

# Make mask of areas of high saturation 
coreMask = S > 200

# Scale up from range 0..1 to range 0..255 and save as PNG
cv.imwrite('result.png', coreMask * 255)

如果我將影像分成h、s 和v 分量,並將h(色調)繪製在左側,s(飽和度)繪製在中間,v(值,即亮度)繪製在右側,您可以在中心s(飽和度)影像,「核心」 形狀的像素值較高,「殘差」 的像素值較低:

以上是如何使用 Python 去除影像中的殘差的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除