批量解决opencv cv2.imread读取32位抠图png图像后,出现隐藏背景无法去除的问题

一、问题展示

1.原始png含蒙版抠图信息:位深度为32位,4通道图像信息,含蒙版背景信息

     

2.使用opencv读取保存后图像信息:位深度为24位,3通道图像信息,显示了扣除的背景

               

 

二、问题分析

      1.用cv模块无法识别深度图,但是用matplotlib模块可以

import matplotlib.image as mpimg
img_path='c.jpg'
img=mpimg.imread(img_path)
print('img_shape',img.shape)

    2.使用cv的图像处理技术会再次将原始png图像的背景信息读取到

三、解决方法

   1.使用ps工具对图像进行24位去除背景蒙版保存;

   2.使用wps图像读取工具对图像进行类别转换;

3.代码位深度判断&转换&去除蒙版

#xiao wu
#coding:utf-8


import os
import cv2
import glob
from PIL import Image
import numpy as np
import matplotlib.image as mpimg

#位深度判断&转换#去除蒙版
for filename in files:  
    #cv模块读取图像信息并打印                        
    img=cv2.imread(filename,cv2.IMREAD_UNCHANGED)
    print('cv2 img_shape',img.shape)

    #matplotlib模块读取图像信息并打印
    img=mpimg.imread(filename)
    print('matplotlib img_shape',img.shape)

    #去除背景信息
    img = Image.open(filename)
    img = img.convert('RGBA')
    pixdata = img.load()
    add_mask = Image.new("RGBA",img.size,(255,255,255))
    add_maskdata=add_mask.load()

    #逐个像素读取并处理
    for y in range(img.size[1]):
        for x in range(img.size[0]):
            if pixdata[x, y][0] > 0 and pixdata[x, y][1] > 0 and pixdata[x, y][2] > 0 and pixdata[x, y][3] > 0:
                add_maskdata[x, y]=pixdata[x, y]
    img = img.convert('RGB')
    img.save(filename)

四、结果展示

去除背景图像信息:

五、PIL库常见图片处理函数

PIL库
from PIL import Image
属性
Image.mode: 图片的格式,例如灰度’L’, 彩色’RGB’, ‘RGBA’
Image.size: 图片的尺寸大小
Image.info: 图片的信息

方法
Image.open(path): 打开图片
Image.new(mode, size, color=0): 创建新图片,一般用不到
Image.fromarray(array, mode=None): 将numpy数组转换为图片,可以指定mode
Image.frombytes(mode, size, data, coder_name =‘raw’, **args):从字节流中读取图片,coder_name为解码器
Image.convert(mode=None, matrix=None, dither=None, palette=0, colors=256): 将图片转换格式,例如由灰度转换为RGB convert('RGB')
Image.crop(box): 截取图片,box是一个(左,上,右,下)的元组,也就是相对于左上角(0,0)的像素值
Image.draft(mode, size):调整图片大小,一个缩略图,格式为mode,大小为size。也就是说你可以将原来很大的图片缩小到你给定的size
Image.getbands(): RGB图返回(‘R’, ‘G’, ‘B’), 灰度图返回(L, ),知道是干什么了的吧
Image.getbbox(): 举个例子,一个512x512的图片会返回(0, 0, 512, 512),分别是(左,上,右,下)
Image.copy(): 复制图片
Image.getextrema(): 返回最大和最小的值(0-255), 如果是灰度图,则返回所有值的最大和最小值(min, max), 如果是RGB图则返回((Rmin, Rmax), (Gmin, Gmax), (Bmin, Bmax))
Image.getpixel((x, y)): 返回给定位置的像素值, 灰度图为单值,RGB图为一维数组
Image.paste(im, box=None, mask=None): 将一张图片粘贴在该图片,box是粘贴的位置,可以是(0, 0)的元组,即(左,上)开始, 也可以是(左,上,右,下),不给定默认为(0, 0)。mask不知道什么意思
Image.putpixel((x, y), value): 在指定位置修改像素值
Image.resize(size, resample=None): 重新调整图片大小,resample不知道什么意思
Image.rotate(angle, resample=None, expand=None): 旋转图片,expand表示是否扩展图片以显示所有内容,默认不扩展,即旋转后的图片和原始图片大小一样
Image.save(fp, format=None): fp可以为文件名或文件对象,一般写文件名就行。format为保存的图片格式,默认根据文件名后缀选择
Image.show(): 在屏幕上显示该图片
Image.split():将图片分割,如果是RGB则分割成R,G,B三个图像
Image.thumbnail(size, resample=1): 同Image.draft
Image.transpose(): 旋转90度,同Image.rotate(90)
Image.verify(): 判断图片是否损坏
Image.close(): 关闭文件指针,一般不需要

相关链接:

PIL库的简单操作_np.ones pil-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410444.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion 绘画入门教程(webui)-ControlNet(线稿约束)

上篇文章介绍了openpose,本篇文章介绍下线稿约束,关于线稿约束有好几个处理器都属于此类型,但是有一些区别。 包含: 1、Canny(硬边缘):识别线条比较多比较细,一般用于更大程度得还原照片 2、ML…

C++ : string类

目录 介绍: string类的七种构造函数: string类的第三个构造函数 string类的第四个构造函数 string类的第五个构造函数 string类的第六个构造函数 string类常用的构造 string类对象的访问遍历操作 第一种遍历方式: 第二种遍历方…

使用Node.js开发RESTful API

在当今信息时代,不管是企业级应用还是个人项目,都离不开RESTful API的使用。RESTful API 是现代 web 应用的基石,通过它,我们可以实现前后端的高效沟通和数据传输。而在开发 RESTful API 的过程中,Node.js 的强大功能和…

AR应用的开发流程

增强现实(Augmented Reality,AR)是一种技术,它将虚拟信息叠加在真实世界中,通过计算机生成的视觉、听觉、触觉等感官反馈,将虚拟元素与现实世界进行交互。这种技术使得用户可以与现实世界中的虚拟对象进行互…

vue插件——vue-print-nb 实现打印功能

之前写过好多关于打印的功能,通过windowprint组合键来实现打印。 今天遇到一个需求,就是使用vue插件来实现打印功能。 最终效果图如下: 下面介绍解决步骤: 解决步骤1:安装vue-print-nb插件——npm install vue-p…

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件 最近看到了一个插件,实现一个可滑动关闭组件。滑动关闭组件即手指向下滑动,组件随手指移动,当移动一定位置时候,手指抬起后组件滑出屏幕。 一、GestureDetect…

配置多个后端 API 代理

在开发 React 应用时,通常会涉及到与后端 API 的交互。而在开发过程中,我们经常需要在开发环境中使用代理来解决跨域请求的问题。Create React App 提供了一种简单的方式来配置代理,即通过创建一个名为 setupProxy.js 的文件来配置代理规则。…

力扣链表篇

以下刷题思路来自代码随想录以及官方题解 文章目录 203.移除链表元素707.设计链表206.反转链表24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链…

一个具有强大PDF处理能力的.Net开源项目

PDF具有跨平台、可读性强、不可修改性、无需特定阅读软件、内容安全等好处,在工作中经常都会用到。 所以,我们在项目开发中,经常需要生成PDF的文件,或者把Html、Xml等文件转化为PDF格式。 今天给大家推荐一个具有PDF处理能力的.…

计算机设计大赛 深度学习大数据物流平台 python

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

vue - - - - Vue3+i18n多语言动态国际化设置

Vue3i18n多语言动态国际化设置 前言一、 i18n 介绍二、插件安装三、i18n配置3.1 创建i18n对应文件夹/文件3.2 en-US.js3.3 zh-CN.js3.4 index.js 四、 mian.js 引入 i18n配置文件五、 组件内使用六、使用效果 前言 继续【如何给自己的网站添加中英文切换】一文之后&#xff0c…

Folx Pro Mac中文p破解版如何使用?为您带来Folx Pro 详细使用教程!

​ Folx pro 5 中文版是mac上一款功能强大的老牌加速下载软件,新版本的Folx pro整体界面非常的简洁和漂亮,具有非常好用的分类管理功能,支持高速下载、定时下载、速度控制、iTunes集成等功能。Folx pro兼容主流的浏览器,不但可以下…

AI对话系统app开源

支持对接gpt,阿里云,腾讯云 具体看截图 后端环境:PHP7.4MySQL5.6 软件:uniapp 废话不多说直接上抗揍云链接: https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码

【postgresql】数据表id自增与python sqlachemy结合实例

需求: postgresql实现一个建表语句,表名:student,字段id,name,age, 要求:每次添加一个数据id会自动增加1 在PostgreSQL中,您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

Jmeter系列(1)Mac下载安装启动

目录 Jmeter下载安装启动下载启动 Jmeter下载安装启动 注意⚠️:使用jmeter需要有java环境 下载 官网下载地址:https://jmeter.apache.org/ 会看到这里有两个版本,那么有什么区别么? Binaries是可执行版,直接下载解…

韩国量子之梦:将量子计算纳入新增长 4.0战略

内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:1500字丨9分钟阅读 据《朝鲜邮报》报道,韩国将推出由量子计算加速的云服务,并在首尔地区启动城市空中交通的试飞&…

企业过二级等保采购哪家堡垒机好?

企业常见过等保,一般是指等保二级或者三级。这不2024开年,不少企业在问,过二级等保采购哪家堡垒机好?电话多少?这里我们小编就给大家毛遂自荐一下吧! 企业过二级等保采购哪家堡垒机好? 【回答】…

Spring Boot Profiles简单介绍

Spring Boot application.properties和application.yml文件的配置 阅读本文之前,请先阅读上面的配置文件介绍。 Spring Boot Profiles是一个用于区分不同环境下配置的强大功能。以下是如何在Spring Boot应用程序中使用Profiles的详细步骤和代码示例。 1. 创…

一周学会Django5 Python Web开发-Django5命名空间namespace

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频,包括:2024版 Django5 Python we…

2024年2月20日v1.0.5更新·优雅草便民工具youyacao-tools

2024年2月20日v1.0.5更新优雅草便民工具youyacao-tools apk下载 https://fenfacun.youyacao.com/tools105.apk 介绍 优雅草便民工具是一款由成都市一颗优雅草科技有限公司打造的便民查询公益工具,2024年1月17日正式发布v1.0.0版本,本工具为了方便大众免…