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()