求图像补色和反色

import cv2 as cv
import numpy as np


def inverse_color(image):
    height, width, temp = image.shape
    img2 = image.copy()
    for i in range(height):
        for j in range(width):
            img2[i, j] = (255 - image[i, j][0], 255 - image[i, j][1], 255 - image[i, j][2])
    return img2


def complement_color(image):
    height, width, temp = image.shape
    img_3 = image.copy()
    #img_2 = image.copy()
    for i in range(height):
        for j in range(width):
            b = image[i, j][0]
            g = image[i, j][1]
            r = image[i, j][2]
            maxrgb = max(r, g, b)
            max1 = image[i, j].max()
            min1 = image[i, j].min()
            minrgb = min((min(r, g), b))
            #img_2[i, j] = (maxrgb + minrgb - b, maxrgb + minrgb - g, maxrgb + minrgb - r)
            img_3[i, j] = (max1 + min1 - b, max1 + min1 - g, max1 + min1 - r)
    return img_3


def inverse(image):
    dst = cv.bitwise_not(image)
    cv.imshow("inverse demo", dst)


def complete(image):
    dst = cv.bitwise_xor(image)
    cv.imshow("complete demo", dst)


img = cv.imread("D:/Pic/PS/1.jpg")
cv.namedWindow("1", cv.WINDOW_AUTOSIZE)
#cv.namedWindow("2", cv.WINDOW_AUTOSIZE)
cv.namedWindow("3", cv.WINDOW_AUTOSIZE)
t1 = cv.getTickCount()
cv.imshow("1", img)
#img_2 = inverse_color(img)
#cv.imshow("2", img_2)
img_3 = complement_color(img)
cv.imshow("3", img_3)
inverse(img)
t2 = cv.getTickCount()
time = (t2-t1)/cv.getTickFrequency()
print("time : %s ms" % (time*1000))
cv.waitKey(0)
cv.destroyAllWindows()

还是用opencv自带的取反函数快

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值