生成负片的方法很简单,只要将像素值设为255-原值即可,水印的生成可调用putText()函数。
import cv2
import numpy as np
fn = "baboon.jpg"
if __name__ == '__main__':
print 'loading %s ...' % fn
print 'processing...'
img = cv2.imread(fn)
w = img.shape[1]
h = img.shape[0]
ii = 0
#divide a multi-channel array into three single-channel arrays
b,g,r = cv2.split(img)
b = 255 - b
g = 255 - g
r = 255 - r
#change the arrays's value by indexing
img[:,:,0] = b
img[:,:,1] = g
img[:,:,2] = r
#add watermark to photo
cv2.putText(img,"python opencv",(20,20),cv2.FONT_HERSHEY_PLAIN,2.0,(0,0,0),
thickness = 2)
cv2.putText(img,"SVM is an Maching learning algorithm",(20,100)
,cv2.FONT_HERSHEY_PLAIN,1.0,(0,0,0),thickness = 2)
cv2.namedWindow('img')
cv2.imshow('img',img)
cv2.waitKey()
cv2.destroyAllWindows()
效果如下: