文章目录

  • 1.基于Python+Opencv实现改变logo颜色
    • 1.1.需掌握的Opencv基础知识
    • 1.2.相关Opencv的API使用
    • 1.3.code实现步骤
    • 1.4. 结果输出展示

1.基于Python+Opencv实现改变logo颜色

1.1.需掌握的Opencv基础知识

  1. 图片读取
  2. 颜色通道的改变
  3. 全局二值化
  4. 颜色通道的分离
  5. 颜色通道的融合(这个除了涉及到BGR三颜色通道外,还涉及到alpha通道)
  6. 图片保存

1.2.相关Opencv的API使用

  1. 读取图片–imread(filename)

    filename:输入图片的相对路径或绝对路径

  2. 改变颜色通道–cvtColor(src,code)

    本博客的颜色通道偏码,即code包括:COLOR_BGR2GRAY和COLOR_GRAY2BGR

  3. 全局二值化–threshold(src,thresh, maxval, type[, dst])

    thresh:设定阈值
    maxval:设置最大值,一般为255
    type:THRESH_BINARY,该二值化的方式,若像素值大于阈值,则像素变为255,否则变为0
    返回值:阈值(retval)和目标图片(dst)

  4. 分离颜色通道–split(m)

    m:输入通道数大于1的图片
    返回值为mv,即通道数

  5. 融合颜色通道–merge(mv)

    mv:输入需要融合的颜色通道数,是一个元组或列表
    dst:返回处理后得到的图片

  6. 保存图片–imwrite(filename,img)
    filename:保存路径
    img:输入需要保存的图片

1.3.code实现步骤

  1. 图片读取
  2. 将彩色图转换为灰度图
  3. 使用全局二值化
  4. 将灰度图转化为三颜色通道,是为了第4颜色通道作准备,即alpha通道,目的是将黑背景去掉
  5. 分离通道
  6. 融合通道
  7. 展示图片
  8. 图片保存
  9. 摧毁窗口,结束
import cv2
#读取图片
img = cv2.imread("fs.png")
#灰度处理,是为了将logo的颜色变为白色
dst = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#二值化处理
ret,dst = cv2.threshold(dst,60,255,cv2.THRESH_BINARY)
#彩图处理
dst3 = cv2.cvtColor(dst,cv2.COLOR_GRAY2BGR)
#分离通道
b, g, r = cv2.split(dst3)
#通道融合
rgba = (b, g, r, dst)
dst4 = cv2.merge(rgba)
#展示结果
cv2.imshow("img",img)
cv2.imshow("dst",dst)
cv2.imshow("dst4",dst4)
#图片保存
cv2.imwrite("fs_result.png",dst4)
#摧毁窗口,结束
cv2.waitKey(0)
cv2.destroyAllWindows()

1.4. 结果输出展示


dst4窗口虽然展示的是黑色背景,但其实它是一个4通道图像,已经使用alpha通道处理过了,最终在保存路径中可以看到的是一个白色logo,透明背景的目标图像,效果如下:

若要转载,请注明出处,谢谢!

基于Python+Opencv实现改变logo颜色相关推荐

  1. 基于python+OpenCV的车牌号码识别

    基于python+OpenCV的车牌号码识别 车牌识别行业已具备一定的市场规模,在电子警察.公路卡口.停车场.商业管理.汽修服务等领域已取得了部分应用.一个典型的车辆牌照识别系统一般包括以下4个部分: ...

  2. 2021-01-07 python opencv实现车牌识别 颜色定位

    python opencv实现车牌识别 颜色定位 主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https ...

  3. PS学习(一)-改变logo颜色

    功能说明:改变logo颜色 步骤: 1.打开Photoshop CC,点击导航栏文件,打开需要处理的图片文件 2.用快速选择工具,选区要改变颜色的区域,效果如下: 3.改变前景色,即你要改完后的log ...

  4. 基于python opencv人脸识别的签到系统

    基于python opencv人脸识别的签到系统 前言 先看下效果 实现的功能 开始准备 页面的构建 功能实现 代码部分 总结 前言 一个基于opencv人脸识别和TensorFlow进行模型训练的人 ...

  5. 基于Python+OpenCV车道线检测(直道和弯道)

    基于Python+OpenCV车道线检测(直道和弯道) 基于Python+OpenCV车道线检测(直道和弯道)

  6. 【开源分享】基于Python+OpenCV+PyQt5车牌识别(GUI界面)

    亲测无错:基于Python+OpenCV+PyQt5车牌识别(GUI界面)绝对可以用的!!!!! 基于Python+OpenCV+PyQt5车牌识别(GUI界面) 参考文档

  7. 基于python+opencv的图像目标区域自动提取

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 一.提取纸张中的内容 一张照片中的感兴趣区域总是沿着x,y,z三个轴都有一定倾斜(如下图),要 ...

  8. 基于python+opencv+pyautogui的图像识别点击

    第一次发文没啥经验 很多都是借鉴若有侵权请告知 必更改 开源代码只供学习交流请勿用作其他用途!!! get_img()#这个函数是获取rgb格式屏幕截图,可用于截图一次识别多个元素 imgclick( ...

  9. 基于python+openCV的中值滤波

    先直接来一个3×3的吧 def median(src_img, filter_size, channels):# 首先,定义一个大小为9的0数组# list = [[0, 0, 0, 0, 0, 0, ...

  10. 基于python opencv mediapape 实现的虚拟计算器

    1.环境准备 本人采用jupyter notebook作为运行环境 1.1python解释器的安装 网盘链接:https://pan.baidu.com/s/1mDv5lYJbm9rJR-fUh1bE ...

最新文章

  1. QA: What's the difference between CustomControl and UserControl?
  2. python中类的嵌套_python类的嵌套
  3. Java使用jfreechart画饼图_jfreechart应用_例题_生成饼状图(展示,生成文件,WEB项目)_可以直接运行...
  4. 如何日赚100万美金?(附“标准”答案)
  5. idea使用dababase tools时导出db2建表语句,索引显示错误
  6. java idea 模块_IDEA搭建java多模块module项目-Go语言中文社区
  7. 数列极差(信息学奥赛一本通-T1427)
  8. 自然语言处理 —— 2.1 词汇表征
  9. 如何用指针判定系统是32bit还是64bit?一次惨痛的经历,想想都脸红
  10. phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法
  11. 社交网络分析——信息传播模型(附带三个模型的python实现)
  12. 医院预约挂号系统 ssm
  13. java接收二进制数据,java接口接收二进制流
  14. 2014年总结和2015年的规划
  15. IT就业前景怎么样?好不好?
  16. USRP B210驱动安装
  17. 思岚A1与A2性能及建图测试比较
  18. STM32F767 QUADSPI 的基本用法
  19. 原始的ajaxtookit的使用
  20. thinkphp5图片或者视频上传

热门文章

  1. 飞控算法-姿态解算之互补滤波
  2. C语言—— 符号函数
  3. 解决虹软人脸识别打开摄像头黑屏的BUG
  4. 2010年山东省区县级农作物面积及产量统计数据
  5. python numpy库下载_python3.6下Numpy库下载与安装图文教程
  6. [互联网]互联网公司的种类
  7. c语言求同构数的三个步骤,C语言求同构数.doc
  8. 京东数科发布《京东区块链技术实践白皮书2020》(附白皮书下载链接)
  9. Reactor 线程模型
  10. intel 集显 linux 驱动程序,Linux下Intel集成显卡驱动安装