图片去背景python,图片去背景在线抠图

发布时间:2022-11-30

本文目录一览:

  1. 用python抠图(背景透明化)
  2. python背景分离的问题。
  3. python中的graphic里如何把已经画好的图案取消?例如:一个三角形
  4. python 做界面时如何使图片保持透明背景
  5. python-opencv怎么在不影响图片中其他颜色的情况下,将黑色背景变成白色背景?

用python抠图(背景透明化)

matplotlib读取RGB图片的时候,往往把图片转化为四通道图片,其中第四个通道是α通道,可以决定图像的透明度。 如果把图片的前景的透明度设定为1,背景的透明度设定为0,那么就算去掉了背景了。 原图。 代码。 出图。 有部分白色背景由于不够白,被保留了下来。 换图。 观察可知,背景是深浅不一的蓝色。 深色参数是a[0,0],浅色区域比较多,也不容易确定位置。 用如下代码抠图,太狠! 再修改代码。

if a[i,j,2] > 1.5*a[i,j,0] and a[i,j,2] > 1.2*a[i,j,1]:

不准抠去黑色部分。经过逐步调整颜色阈值,得到下面的效果。 上面代码如下。

python背景分离的问题。

你看一下ret和im的返回值,是不是真的获取到了图像,图像是不是彩色的,3通道的

python中的graphic里如何把已经画好的图案取消?例如:一个三角形

move就可以了吧。那么个对象move一下,对象最好用图片。这样换起来也方便。一个小的GIF图。 graphic简化了很多东西。过去做这样的东西。麻烦很多。

  1. 将对象用图片画在DC里,保存DC
  2. 绘制前,先将背景对应区域的地方,做局部刷新
  3. 绘上你保存的DC 如果想去除,就是把背景对应区域,做一次局部刷新就可以了。如果全部刷新,屏幕会闪烁。 当然,现在都简化了,你直接将你绘制的对象的变量。加上一个方法move()就可以去掉。

python 做界面时如何使图片保持透明背景

# coding=utf-8  
# matplotlib背景透明示例图  
# python 3.5  
import numpy as np  
import matplotlib.pyplot as plt  
from pylab import mpl  
import scipy.stats as stats  
# 设置中文字体  
mpl.rcParams['font.sans-serif'] = ['SimHei']  
def autolabel(rects):  
    # attach some text labels  
    for rect in rects:  
        height = rect.get_height()  
        # 设置标注文字及位置  
        ax.text(rect.get_x() + rect.get_width() / 2, 0.03 + height, '%.4f' % height, ha='center', va='bottom')  
# 数据  
testData = [[0.87, 0.40, 0.56],  
            [0.97, 0.50, 0.33],  
            [0.88, 0.30, 0.44],  
            [0.25, 0.23, 0.17],  
            [0.73, 0.33, 0.45]]  
N = 3  
width = 0.5  
ind = np.arange(width, width*6*N, width*6)  
fig, ax = plt.subplots()  
rectsTest1 = ax.bar(ind, (testData[0][0], testData[0][1], testData[0][2]), width, color=(0, 0, 1, 1), edgecolor=(0, 0, 1, 1))  
rectsTest2 = ax.bar(ind + width, (testData[1][0], testData[1][1], testData[1][2]), width, color=(1, 0, 0, 1), edgecolor=(1, 0, 0, 1))  
rectsTest3 = ax.bar(ind + 2*width, (testData[2][0], testData[2][1], testData[2][2]), width, color=(0, 1, 0, 1), edgecolor=(0, 1, 0, 1))  
rectsTest4 = ax.bar(ind + 3*width, (testData[3][0], testData[3][1], testData[3][2]), width, color=(1, 0.6471, 0, 1), edgecolor=(1, 0.6471, 0, 1))  
rectsTest5 = ax.bar(ind + 4*width, (testData[4][0], testData[4][1], testData[4][2]), width, color=(0.5804, 0, 0.8275, 1), edgecolor=(0.5804, 0, 0.8275, 1))  
ax.set_xlim(0, 9.5)  
ax.set_ylim(0, 1.4)  
ax.set_ylabel('数值')  
ax.yaxis.grid(True)  
ax.set_xticks(ind + width * 2.5)  
ax.set_xticklabels(('P', 'R', 'F'))  
# 设置图例  
legend = ax.legend((rectsTest1, rectsTest2, rectsTest3, rectsTest4, rectsTest5), ('test1', 'test2', 'test3', 'test4', 'test5'))  
frame = legend.get_frame()  
frame.set_alpha(1)  
frame.set_facecolor('none')  # 设置图例legend背景透明  
# 给每个数据矩形标注数值  
autolabel(rectsTest1)  
autolabel(rectsTest2)  
autolabel(rectsTest3)  
autolabel(rectsTest4)  
autolabel(rectsTest5)  
plt.savefig('C:/Users/XX/Desktop/test.png', format='png', bbox_inches='tight', transparent=True, dpi=600)  # bbox_inches='tight' 图片边界空白紧致, 背景透明

python-opencv怎么在不影响图片中其他颜色的情况下,将黑色背景变成白色背景?

设前景色为白色,选择--色彩范围,点选黑色,作反相处理,调整色阶至满意,局部细节用画笔修整一下即可。