python 怎么设置背景为白色_python-3.x - 如果存在白色和黑色背景,如何将整个图像的背景转换为白色? - SO中文参考 - www.soinside.com...

这是一种可能的方法。如果转换为HSV色彩空间,蓝色阴影将显示比黑色和白色更高的饱和度,所以......

转换为HSV

找到每行的平均饱和度,并选择平均饱和度超过阈值的行

灰度化那些行,反转并阈值它们

如果反向(突出)背景是除黑色或白色之外的任何颜色,则此方法应该有效。它假设您根据示例将图像偏斜为真正的垂直/水平。

在Python中看起来像这样:

#!/usr/bin/env python3

import cv2

import numpy as np

# Load image

im = cv2.imread('form.jpg')

# Make HSV and extract S, i.e. Saturation

hsv = cv2.cvtColor(im, cv2.COLOR_BGR2HSV)

s=hsv[:,:,1]

# Save saturation just for debug

cv2.imwrite('saturation.png',s)

# Make greyscale version and inverted, thresholded greyscale version

gr = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

_,grinv = cv2.threshold(gr,127,255,cv2.THRESH_BINARY_INV)

# Find row numbers of rows with colour in them

meanSatByRow=np.mean(s,axis=1)

rows = np.where(meanSatByRow>50)

# Replace selected rows with those from the inverted, thresholded image

gr[rows]=grinv[rows]

# Save result

cv2.imwrite('result.png',gr)

结果如下:

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS83RGVtSi5wbmcifQ==

饱和度图像如下所示 - 请注意饱和色(即蓝色)显示为浅色,其他一切显示为黑色:

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9heTNjYS5wbmcifQ==

灰度,倒像图像如下所示:

eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9sZWlDWi5wbmcifQ==

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值