Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法
时间:2023-03-13 12:12:42|栏目:Python代码|点击: 次
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.参考文章:
栏 目:Python代码
下一篇:详解Swift中属性的声明与作用
本文标题:Opencv中cv2.cvtColor彩色图转灰度图的其他6种方法
本文地址:http://www.codeinn.net/misctech/227365.html