python opencv 图像偏色值检验
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 图像偏色值检验相关推荐
- python opencv 图像膨胀
python opencv 图像膨胀 代码: import cv2 import numpy as np # 图像膨胀 def dilate_img(img,a,iterations):kernel ...
- python opencv 图像旋转
python opencv 图像旋转 原图 顺时针旋转 代码: import cv2 path = '2.jpg' img = cv2.imread(path,1) trans_img = cv2.t ...
- python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例
python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...
- 【Python+OpenCV 图像透视变换 warpPerspective函数】
Python+OpenCV 图像透视变换 warpPerspective函数 1.函数介绍 2.代码实例 3.实现效果 1.函数介绍 warpPerspective():对图像进行透视变换.简单来说, ...
- 【Python+OpenCV 图像的缩放和裁剪】
Python+OpenCV 图像的缩放和裁剪 代码部分 实现效果 代码部分 import cv2 import numpy as npimg = cv2.imread("Photos/1.b ...
- Python OpenCV 图像缩放 cv2.resize 方法
今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...
- Python OpenCV 图像平移,取经之旅第 10 天
今天是持续写作的第 43 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客学习 OpenCV 中关于图像平移的方法,核心学习到的方法是 warpAffine . 取经之旅第 ...
- Python OpenCV 图像的几何变换,先说不平凡的 resize 函数
Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧.本篇博客是这个系列的第 41 篇. 该系列文章导航参考:https://blog.csdn.net/hihell/categ ...
- python opencv 图像网络传输
本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上.该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC ...
最新文章
- 程序员成熟的几个标志
- Django 连接Mysql异常处理
- linux -- at命令
- 腾讯AI Lab推进医疗全流程覆盖:辅诊导诊精度再升级、布局三类病理AI研究
- 论文浅尝 - 计算机工程 | 大规模企业级知识图谱实践综述
- 《VMware vSphere 6.5企业运维实战》已经出版
- Java基础---认识多态
- 江苏师范大学计算机控制考试题库,江苏技术师范学院2006¬—2007学年第2学期《微机原理与接口技术》试卷(2份,有答案)...
- 腾讯广告算法大赛 | 第一周周冠军心得分享
- 加密芯片提升消费电子产品设备的安全性能
- Android 多种跑马灯的方法
- java 圆弧,JavaFX圆弧
- html 图片旋转插件,jQuery插件expander实现图片翻转特效
- intellij idea设置代码提示不区分大小写
- 理解OAuth2授权框架
- linux无root权限安装软件
- java 开发多if else 代码优化
- 18.Oracle10g服务器管理恢复--RMAN备用数据库(练习31.32)
- python:二.Python教程
- java基于springboot家庭水电燃气网上交费系统
热门文章
- decode解码报错UnicodeDecodeError: 'gb2312' codec can't decode byte 0x8f in position 6018: illegal multib
- sms+cmgs+pdu+java_实现sms短信发送+pdu模式(支持中英文发送)
- C++实现管理系统课程设计
- 【效率神奇】Github丧心病狂的9个狠招
- vim note (1)
- 数据结构之—栈和队列
- mysql 权限设置 降权
- kaios好用吗_kaios系统有微信吗
- outlook修复工具_修复Outlook 2007中缓慢的“即时搜索”问题
- java加密和js的CryptoJS加密