zoukankan      html  css  js  c++  java
  • 今天不抠图,Python实现一键换底片!想换什么换什么(附源码)

    前言

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    生活中我们会拍很多的证件照,有的要求红底,有的是白底,有的是蓝底,今天不通过抠图,实现一键换底片!想换什么换什么

    知识点:

    1.图像处理

    2.OpenCV

    3.numpy

    4.python基础知识

    环境:

    windows

    pycharm

    python3

    步骤

    倒入库

    import numpy as np
    import cv2

    如果直接在命令提示符中安装的话要换个名称

    今天抠图,Python实现一键换底片!想换什么换什么(附源码)

     

    pip install OpenCV-python

    图像导入

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

    缩放

    rows,cols,channels = img.shape
    print(rows,cols,channels)
    img = cv2.resize(img,None,fx=0.5,fy=0.5)
    rows,cols,channels = img.shape
    print(rows,cols,channels)
    今天抠图,Python实现一键换底片!想换什么换什么(附源码)

     

    显示图像内容,并进行处理

    转换图像为二值化图

    cv2.imshow('img',img)
    
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    
    cv2.imshow('hsv',hsv)
    lower_blue = np.array([90,70,90])
    upper_blue = np.array([110,255,255])

    二值化功能

    mask = cv2.inRange(hsv,lower_blue,upper_blue)
    cv2.imshow('Mask',mask)

    腐蚀

    erosion = cv2.erode(mask,None,iterations=1)
    cv2.imshow('erosion',erosion)

    膨胀

    dilation = cv2.dilate(mask ,None,iterations=1)
    cv2.imshow('dilation',dilation)
    今天抠图,Python实现一键换底片!想换什么换什么(附源码)

     

    for i in range(rows):
        for j in range(cols):
            if dilation[i,j] == 255:
                img[i,j] = (0,0,255)   # rgb(255,0,0)  BGR()
                
    cv2.imshow('res',img)

    保存

    cv2.imwrite('ting.png',img)
    cv2.waitKey(0)  # 0 无限等待
    cv2.destroyAllWindows()  # 销毁所有的窗口
    今天抠图,Python实现一键换底片!想换什么换什么(附源码)
  • 相关阅读:
    剑指Offer替换空格
    转载类的静态成员函数和静态成员变量的使用
    最长递增子序列长度LIS
    剑指Offer二维数组中的查找
    转载C语言:浮点数在内存中的表示
    7 CICD实战 持续集成71 kubernetes与cicd
    9 深入kubernetes服务调度与编排91 健康检查高可用的守护者
    项目成功的⑤大因素
    Ucos_II2.52源码中文译注
    SIP协议中的认证方式
  • 原文地址:https://www.cnblogs.com/hhh188764/p/13121860.html
Copyright © 2011-2022 走看看