Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法

Kara ·
更新时间:2024-09-21
· 1132 次阅读

目录

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彩色图转灰度图内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



cvtcolor 方法 opencv 灰度图

需要 登录 后方可回复, 如果你还没有账号请 注册新账号