Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法
作者:Keep_Trying_Go
本文主要介绍了Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1.公式集成:
2.代码实现:
import os import cv2 import queue import threading import numpy as np #用户存取函数的返回值 q=queue.Queue() def rgb2gray(image,method): h,w,c=image.shape gray=np.zeros((h,w),dtype=np.uint8) y=0 for row in range(h): for col in range(w): #Opencv读取出的图片格式为BGR b,g,r=np.int32(image[row,col]) if method==1: y=0.299*r+0.587*g+0.114*b if method==2: y=(max([r,g,b])+min([r,g,b]))//2 if method==3: y=(r+g+b)//3 if method==4: y=0.21*r+0.72*g+0.07*b if method==5: y=max([r,g,b]) if method==6: y=min([r,g,b]) gray[row,col]=y # return gray q.put((gray)) if __name__ == '__main__': print('Pycharm') curr_path=os.getcwd()+'\\5.jpg' print(curr_path) image=cv2.imread(curr_path) cv2.imshow('BGR: ',image) #opencv提供的转灰度图的方法 gray_cvColor=cv2.cvtColor(image,cv2.COLOR_BGRA2GRAY) cv2.imshow('gray_cvColor',gray_cvColor) gray1=rgb2gray(image,1) gray2 = rgb2gray(image, 2) gray3 = rgb2gray(image, 3) gray4 = rgb2gray(image, 4) gray5 = rgb2gray(image, 5) gray6 = rgb2gray(image, 6) cv2.imshow('一般转换方法',gray1) cv2.imshow('亮度优化转换', gray2) cv2.imshow('平均亮度转换', gray3) cv2.imshow('权重亮度转换', gray4) cv2.imshow('最大亮度转换', gray5) cv2.imshow('最小亮度转换', gray6) cv2.waitKey(0) cv2.destroyAllWindows()
3.实验结果:
4.参考文章:
https://mp.weixin.qq.com/s/jqVVZbZZRIqVt_Fs7HiUkg
到此这篇关于Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法的文章就介绍到这了,更多相关Opencv cv2.cvtColor彩色图转灰度图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!