python_opencv 黑白图片之白色部分单独分离

本文介绍了如何使用Python和OpenCV从黑白图片中单独提取并保存白色部分。作者通过`cv2.findContours()`找到白色区域的轮廓,然后创建新图像并将这些轮廓填充为白色,其余部分填充为黑色,从而实现目标。
摘要由CSDN通过智能技术生成

python_opencv 黑白图片之白色部分单独分离

问题

最近在学习图像处理方面的东西,于是找了一些小任务,进行锻炼,对于这个黑白图片,白色部分单独取出并分别保存的做法,发现网上很少有类似的,于是便写下了这篇文章。

思路介绍

我的思路是首先通过**cv2.findContours()**所有白色部分的contours,也即轮廓的坐标点集合,然后通过重新新建一个图片,将以坐标填充到新建的图片内,其余都填充黑色,最后加以保存,便得到了想要的白色独立图片。

附上我的代码

import os
import numpy as np
import cv2

def cut(lenth, contours, mask, h, w):
    x_data = [0 for i in range(lenth)] # 以contours的大小为数组的大小,便于后续操作
    y_data = [0 for i in range(lenth)]

    for i in range(lenth):
        x_data[i] = contours[i][0][0] # x坐标赋值,至于为何这样,可以打印contours便可发现其中道理
    for i in range(lenth):
        y_data[i] = contours[i][0][1]
    max_x = max(x_data) # 这里是为了方便取出来的部分有一定的黑边包裹
    min_x = min(x_data)
    max_y = max(y_data)
    min_y = min(y_data)
    if max_y+5>=h:
        max_y = h
    else
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值