Python OpenCV真香——去除照片白色背景

简介: Python OpenCV真香——去除照片白色背景

最近帮别人做了个图像分类的项目,他告诉我就是个二分类,区分有没有瑕疵,我想这简单就接了。

 我理想中的图片是这样的:

tt.png

然而现实中的图片确是这样的:


tt.png


这个不算夸张,还有更夸张的,物体占比非常小,大片的白色背景上还有一些污渍。


这给分类造成了很大的困扰,所以第一步是要把背景去掉,废话不多说,直接上代码。


import cv2

import numpy as np

img=cv2.imread('01.jpg')

## (1) Convert to gray, and threshold

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

print(gray)


#二值化,将背景150到255的像素值改为255

th, threshed = cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY_INV)

## (2) Morph-op to remove noise

kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (11,11))

morphed = cv2.morphologyEx(threshed, cv2.MORPH_CLOSE, kernel)

## (3) Find the max-area contour

cnts = cv2.findContours(morphed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]

cnt = sorted(cnts, key=cv2.contourArea)[-1]

## (4) Crop and save it

x,y,w,h = cv2.boundingRect(cnt)


#取反色,删除背景的影响。

dst = 255-img[y:y+h, x:x+w]

cv2.imwrite("001.png", dst)


结果:


tt.png

tt.png

目录
相关文章
|
3月前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
317 1
|
1月前
|
机器学习/深度学习 编解码 Python
python将照片集变成视频
`shigen`是一位坚持更新文章的博客作者,记录成长历程,分享认知见解,留住生活感动。他利用Python库`Pillow`和`MoviePy`开发了一个工具,能够批量处理照片并生成高质量视频。该工具支持多种分辨率、自定义播放时间和照片方向,并能自动调整照片比例以实现居中对齐。通过简单的代码实现了照片视频化的需求,适合强迫症患者使用。**与shigen一起,每天不一样!**个人IP:shigen。
43 9
python将照片集变成视频
|
1月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
100 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
1月前
|
机器学习/深度学习 算法 计算机视觉
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
【Python篇】Python + OpenCV 全面实战:解锁图像处理与视觉智能的核心技能
68 2
|
1月前
|
Python
用 Python 读取照片的 Exif 信息(顺便说说本人的一些想法)
用 Python 读取照片的 Exif 信息(顺便说说本人的一些想法)
55 2
|
2月前
|
数据安全/隐私保护 计算机视觉 Python
用python给照片添加水印的三种方式
这篇文章介绍了使用Python给照片添加水印的三种方式:通过PIL库直接添加文本水印、使用OpenCV库结合图像处理功能添加水印,以及使用filestools库进行更为简便的水印添加。
82 7
|
2月前
|
机器学习/深度学习 计算机视觉 Python
opencv环境搭建-python
本文介绍了如何在Python环境中安装OpenCV库及其相关扩展库,包括numpy和matplotlib,并提供了基础的图像读取和显示代码示例,同时强调了使用Python虚拟环境的重要性和基本操作。
|
3月前
|
存储 编解码 API
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
245 1
|
3月前
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
499 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
3月前
|
机器学习/深度学习 人工智能 监控
利用Python和OpenCV实现实时人脸识别系统
【8月更文挑战第31天】本文将引导您了解如何使用Python结合OpenCV库构建一个简易的实时人脸识别系统。通过分步讲解和示例代码,我们将探索如何从摄像头捕获视频流、进行人脸检测以及识别特定个体。本教程旨在为初学者提供一条明晰的学习路径,帮助他们快速入门并实践人脸识别技术。