opencv中的cv2.cvtColor()函数中将BGR图转换为YCrCb及YCR_CB所使用的公式及代码验证
2018-11-13 00:02
716 查看
【时间】2018.11.13
【题目】opencv中的cv2.cvtColor()函数中将BGR图转换为YCrCb及YCR_CB所使用的公式及代码验证
概述
在opencv中,可以使用cv2.cvtColor()函数将BGR图转换为YCrCb及YCR_CB,本文主要讲述他们所使用的由BGR转换的公式并用代码进行验证。
一、cv2.COLOR_BGR2YCR_CB以及cv2.COLOR_BGR2YCrCb
1.1 使用的转换公式
#BGR---》YCrCb
-
Y’ = 0.257*R' + 0.504*G' + 0.098*B' + 16
-
Cb' = -0.148*R' - 0.291*G' + 0.439*B' + 128
-
Cr' = 0.439*R' - 0.368*G' - 0.071*B' + 128
-
R' = 1.164*(Y’-16) + 1.596*(Cr'-128)
-
G' = 1.164*(Y’-16) - 0.813*(Cr'-128) - 0.392*(Cb'-128)
-
B' = 1.164*(Y’-16) + 2.017*(Cb'-128)
1.2 验证
【代码】
[code]import cv2 import numpy as np img = np.arange(200,227,dtype= np.uint8).reshape((3,3,3)) b,g,r = cv2.split(img) YCrCb = cv2.cvtColor(img,cv2.COLOR_BGR2YCR_CB) #YCrCb = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb) Y,Cr,Cb = cv2.split(YCrCb) Y1 = 0.299*r + 0.587*g + 0.114*b Cr1 = 0.5*r - 0.4187*g - 0.0813*b + 128 Cb1 = -0.1687*r - 0.3313*g + 0.500*b+ 128 print(Y-Y1) print(Cb-Cb1) print(Cr-Cr1)
【运行结果】
阅读更多
相关文章推荐
- 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
- MSSQL2005中将多行合并为一行的方法,此方法不再使用sql2000中函数转换的办法
- php中将汉字转换成拼音的函数代码
- opencv中直方图均衡函数cv::equalizeHist()的使用!!严格用程序进行了验证!
- asp中将相对路径转换为绝对路径的函数代码
- python opencv 中将图像由BGR转换为CHW用于后期的深度训练
- 练习 3-2 编写一个函数escape(s, t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- asp中将相对路径转换为绝对路径的函数代码
- v4l2采集视频,opencv处理帧数据第一难关:qt的QImage转换为opencv的IplImage 函数代码实现
- 练习3-2 编写一个函数escape(s,t),将字符串t复制到字符串s中,并在复制过程中将换行符、制表符等不可见字符转换为\n、\t等相应的可见的转义字符序列。要求使用switch语句。
- 关于使用opencv的提速(一)(代码x86转换x64的问题)
- 不使用汇编在vc中转换类的成员函数为一个线程的通用代码
- 练习 3-2 编写一个函数escape(s, t),将字符串t 复制到字符串s 中,并在复制过程中将换行符、制表符等不可见字符分别转换为\n、\t等相应的可见的转义字符序列。要求使用swich语句。
- FormatRemoteUrl函数之asp实现格式化成当前网站完整的URL-将相对地址转换为绝对地址的代码
- 【实用代码】C#中转换全半角字符的函数
- FormatRemoteUrl函数之asp实现格式化成当前网站完整的URL-将相对地址转换为绝对地址的代码
- Iconv是UNIX 95的iconv()函数的封装形式,它在各种字符代码体系间进行字符串转换。
- BAPI--使用HR_INFOTYPE_OPERATION函数批量导入HR信息纪录代码样例(0759信息类型)
- asp下实现对HTML代码进行转换的函数