python+opencv 彩色圖轉灰度圖原理


任何顏色都有紅、綠、藍三原色組成,某點的顏色為RGB(R,G,B),那么,我們可以通過下面幾種方法,將其轉換為灰度: 
  1.浮點算法:Gray=R*0.3+G*0.59+B*0.11 
  2.整數方法:Gray=(R*30+G*59+B*11)/100 
  3.移位方法:Gray =(R*28+G*151+B*77)>>8; 
  4.平均值法:Gray=(R+G+B)/3; 
  5.僅取綠色:Gray=G; 
  通過上述任一種方法求得Gray后,將原來的RGB(R,G,B)中的R,G,B統一用Gray替換,形成新的顏色RGB(Gray,Gray,Gray),用它替換原來的RGB(R,G,B)就是灰度圖了。

代碼:

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

src=cv.imread('D:/pycharm/pycharmproject/test.jpg')

gray=np.array(src)
gray=gray[:,:,0]
new_color=np.array([gray,gray,gray])
new_color=np.transpose(new_color,(1,2,0))#矩陣維度交換
cv.imshow('new_color',new_color)
cv.waitKey(0)
cv.destroyAllWindows()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM