python手记(33)

python+OPENCV彩色转灰度

#!/usr/bin/env python
#-*- coding: utf-8 -*-
#code:[email protected]
import cv2
import numpy as np


fn="test2.jpg"

if __name__ == '__main__':
    print 'http://blog.csdn.net/myhaspl'
    print '[email protected]'
    print
    print 'loading %s ...' % fn
    print '正在处理中',
    img = cv2.imread(fn)
    w=img.shape[1]
    h=img.shape[0]    
    ii=0
    #彩色转换到灰度
    #强度公式为(b*0.299+g*0.587+r*0.114)/3
    #
    b, g, r = cv2.split(img)
    b=b*0.299
    g=g*0.587
    r=r*0.114
    mycolor=(b+g+r)/3
    #直接通过索引改变色彩分量 
    img[:,:,0]=mycolor
    img[:,:,1]=mycolor
    img[:,:,2]=mycolor
    #加上水印
    cv2.putText(img,"http://blog.csdn.net/myhaspl", (20,20),cv2.FONT_HERSHEY_PLAIN, 2.0, (0, 0, 0), thickness = 2)
    cv2.putText(img,"code by myhaspl:[email protected]", (20,100),cv2.FONT_HERSHEY_PLAIN, 2.0, (0, 0, 0), thickness = 2)    
    cv2.namedWindow('img')     
    cv2.imshow('img', img)

    cv2.waitKey()
    cv2.destroyAllWindows()

也可以使用通道合并

#!/usr/bin/env python
#-*- coding: utf-8 -*-
#code:[email protected]
import cv2
import numpy as np


fn="test2.jpg"

if __name__ == '__main__':
    print 'http://blog.csdn.net/myhaspl'
    print '[email protected]'
    print
    print 'loading %s ...' % fn
    print '正在处理中',
    img = cv2.imread(fn)
    w=img.shape[1]
    h=img.shape[0]    
    ii=0
    #生成负片
    #
    b, g, r = cv2.split(img)
    b=255-b
    g=255-g
    r=255-r
    #通道合并 
    imgxx = cv2.merge([b,g,r])
    #加上水印
    cv2.putText(img,"http://blog.csdn.net/myhaspl", (20,20),cv2.FONT_HERSHEY_PLAIN, 2.0, (0, 0, 0), thickness = 2)
    cv2.putText(img,"code by myhaspl:[email protected]", (20,100),cv2.FONT_HERSHEY_PLAIN, 2.0, (0, 0, 0), thickness = 2)    
    cv2.namedWindow('img')     
    cv2.imshow('img', img)
    cv2.imshow("Merged", imgxx)     
    cv2.waitKey()
    cv2.destroyAllWindows()


你可能感兴趣的:(python,opencv)