Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法
目录
- 1.公式集成:
- 2.代码实现:
- 3.实验结果:
- 4.参考文章:
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彩色图转灰度图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
赞 (0)