cv2进行反色操作

绝地灬酷狼 2022-10-22 07:39 321阅读 0赞

反色操作(invert_image)是将原始的像素值(origin_image)进行处理,是通过255减去原始像素:

invert_image=255-origin_image

因此可以使用cv2里面的cv2.addWeighted进行加权处理,具体代码如下:

  1. import cv2
  2. import numpy as np
  3. img1=cv2.imread('123.jpg')
  4. h,w,c=img1.shape
  5. img2=np.zeros((h,w,c),dtype='uint8')
  6. invert_image=cv2.addWeighted(img1,-1,img2,0,255,0)
  7. cv2.imshow('invert_image',invert_image)
  8. cv2.imshow('img1',img1)
  9. cv2.waitKey(0)

addWeighted这个函数是进行加权处理,结果就是255-image1的像素值。

上面的代码运行结果如下:

原始图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VfNDM4_size_16_color_FFFFFF_t_70

处理后的图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VfNDM4_size_16_color_FFFFFF_t_70 1

这就是反色后的图

上面做的是三通道的图像,我们假如是遇到单通道的图片,同样可以处理:

代码如下:

  1. import cv2
  2. import numpy as np
  3. img1=cv2.imread('123.jpg')
  4. h,w,c=img1.shape
  5. gray1=cv2.cvtColor(img1,cv2.COLOR_BGR2GRAY)
  6. img2=np.zeros((h,w),dtype='uint8')
  7. gray2=cv2.addWeighted(gray1,-1,img2,0,255,0)
  8. cv2.imshow('gray1',gray1)
  9. cv2.imshow('gray2',gray2)
  10. cv2.waitKey(0)

原始单通道图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VfNDM4_size_16_color_FFFFFF_t_70 2

处理后的图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pob3VfNDM4_size_16_color_FFFFFF_t_70 3

发表评论

表情:
评论列表 (有 0 条评论,321人围观)

还没有评论,来说两句吧...

相关阅读