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. OpenCV FLANN在数据集中搜索查询图片的实例(附完整代码)
  3. 操作系统分区分配java算法_合肥工业大学操作系统课程设计 动态分区分配存储管理java版.doc...
  4. 高并发高性能服务器是如何实现的
  5. 如何通过TortoiseGit(小乌龟)把本地项目上传到github上
  6. Nginx源码分析 - HTTP模块篇 - HTTP模块的初始化(20)
  7. java的HashCode方法(转载)
  8. 为什么会出现35岁就失业的魔咒?
  9. Visual Studio 2013 编译Notepad++源码
  10. setTimeout 方法用于在指定的毫秒数后调用函数或计算表达式
  11. php对接易宝支付实现真实交易
  12. 软件测试典型缺陷分析,软件测试缺陷分析方法简介
  13. 计算机主机并行接口,计算机并行接口技术原理.ppt
  14. c语言变量表达式计算器,C语言表达式计算器~
  15. 如何将excel里的数据导入到mysql中
  16. Lync 2010升级到Lync 2013 之部署WAC 角色服务器!
  17. 天翼云服务器迁移阿里云_云迁移策略:如何建立专家团队
  18. python培训班报名
  19. 基于zxing生成二维码
  20. 仿网易蜗牛读书小程序

热门文章

  1. shape 和 size() 区别
  2. 【报告分享】 中国金融科技和数字普惠金融发展报告-中关村互联网金融研究院(附下载)
  3. 速收藏!实拍你的蚂蚁森林,张张都是高清美图壁纸
  4. 软件测试常见的经典面试题
  5. 长文 | 盘点 YOLOv4 这些鲜为人知的特性!
  6. 压测工具大比武!谁是市场主流?
  7. zTree实现删除树节点
  8. 神经网络阈值是什么意思,神经网络的权值和阈值
  9. TestPatten测试
  10. ffmpeg 视频格式转换命令记录