lab颜色空间实现图像偏色检验算法

  • 将rgb图像转到lab空间,实现偏色检验
  • 利用opencv的内置函数cv2.COLOR_BGR2LAB
  • python代码
  • 测试效果
  • 结论

将rgb图像转到lab空间,实现偏色检验

参考论文《基于图像分析的偏色检测及颜色校正方法》(徐晓昭)中的方法。文中还有偏色纠正的算法,可能是我实现算法有问题吗,测试结果是那种算法只能针对特定偏色值范围的图形有效。

利用opencv的内置函数cv2.COLOR_BGR2LAB

用内置函数得到的三通道L,a,b的值并不是在规定范围(L: [0, 100], a: [-128, 127], b: [-128, 127]) ,估计其内置函数得到的范围为0-255,因此需要将其归一化

python代码

def color_test(img):b, g, r = cv2.split(img)print(img.shape)m, n, z = img.shapeimg_lab = cv2.cvtColor(img, cv2.COLOR_BGR2LAB)l, a, b = cv2.split(img_lab)d_a, d_b, M_a, M_b = 0, 0, 0, 0for i in range(m):for j in range(n):d_a = d_a + a[i][j]d_b = d_b + b[i][j]d_a, d_b = (d_a / (m * n)) - 128, (d_b / (n * m)) - 128D = np.sqrt((np.square(d_a) + np.square(d_b)))for i in range(m):for j in range(n):M_a = np.abs(a[i][j] - d_a - 128) + M_aM_b = np.abs(b[i][j] - d_b - 128) + M_bM_a, M_b = M_a / (m * n), M_b / (m * n)M = np.sqrt((np.square(M_a) + np.square(M_b)))k = D / Mprint('偏色值:%f' % k)return

测试效果

k=2.61

k=0.57

k=2.23

k=0.48

结论

基本符合其他算法的情况。

python opencv 图像偏色值检验相关推荐

  1. python opencv 图像膨胀

    python opencv 图像膨胀 代码: import cv2 import numpy as np # 图像膨胀 def dilate_img(img,a,iterations):kernel ...

  2. python opencv 图像旋转

    python opencv 图像旋转 原图 顺时针旋转 代码: import cv2 path = '2.jpg' img = cv2.imread(path,1) trans_img = cv2.t ...

  3. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  4. 【Python+OpenCV 图像透视变换 warpPerspective函数】

    Python+OpenCV 图像透视变换 warpPerspective函数 1.函数介绍 2.代码实例 3.实现效果 1.函数介绍 warpPerspective():对图像进行透视变换.简单来说, ...

  5. 【Python+OpenCV 图像的缩放和裁剪】

    Python+OpenCV 图像的缩放和裁剪 代码部分 实现效果 代码部分 import cv2 import numpy as npimg = cv2.imread("Photos/1.b ...

  6. Python OpenCV 图像缩放 cv2.resize 方法

    今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...

  7. Python OpenCV 图像平移,取经之旅第 10 天

    今天是持续写作的第 43 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客学习 OpenCV 中关于图像平移的方法,核心学习到的方法是 warpAffine . 取经之旅第 ...

  8. Python OpenCV 图像的几何变换,先说不平凡的 resize 函数

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 41 篇. 该系列文章导航参考:https://blog.csdn.net/hihell/categ ...

  9. python opencv 图像网络传输

    本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上.该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC ...

最新文章

  1. 程序员成熟的几个标志
  2. Django 连接Mysql异常处理
  3. linux -- at命令
  4. 腾讯AI Lab推进医疗全流程覆盖:辅诊导诊精度再升级、布局三类病理AI研究
  5. 论文浅尝 - 计算机工程 | 大规模企业级知识图谱实践综述
  6. 《VMware vSphere 6.5企业运维实战》已经出版
  7. Java基础---认识多态
  8. 江苏师范大学计算机控制考试题库,江苏技术师范学院2006¬—2007学年第2学期《微机原理与接口技术》试卷(2份,有答案)...
  9. 腾讯广告算法大赛 | 第一周周冠军心得分享
  10. 加密芯片提升消费电子产品设备的安全性能
  11. Android 多种跑马灯的方法
  12. java 圆弧,JavaFX圆弧
  13. html 图片旋转插件,jQuery插件expander实现图片翻转特效
  14. intellij idea设置代码提示不区分大小写
  15. 理解OAuth2授权框架
  16. linux无root权限安装软件
  17. java 开发多if else 代码优化
  18. 18.Oracle10g服务器管理恢复--RMAN备用数据库(练习31.32)
  19. python:二.Python教程
  20. java基于springboot家庭水电燃气网上交费系统

热门文章

  1. decode解码报错UnicodeDecodeError: 'gb2312' codec can't decode byte 0x8f in position 6018: illegal multib
  2. sms+cmgs+pdu+java_实现sms短信发送+pdu模式(支持中英文发送)
  3. C++实现管理系统课程设计
  4. 【效率神奇】Github丧心病狂的9个狠招
  5. vim note (1)
  6. 数据结构之—栈和队列
  7. mysql 权限设置 降权
  8. kaios好用吗_kaios系统有微信吗
  9. outlook修复工具_修复Outlook 2007中缓慢的“即时搜索”问题
  10. java加密和js的CryptoJS加密