显著性检测 LC代码python

https://asdfv1929.github.io/2018/05/11/saliency-LC/
或者以下代码实现

import numpy as np
import time
import cv2



def LC(image_gray):
    image_height,image_width = image_gray.shape[:2]
    base_matrix = np.zeros((256,256),dtype=np.int32)
    base_line = np.array(range(256))

    base_matrix[0] = base_line
    for i in range(1,256):
        base_matrix[i] = np.roll(base_line,i)
    base_matrix = np.triu(base_matrix)
    temp_matrix = np.triu(base_matrix).T
    base_matrix = np.add(base_matrix ,temp_matrix)

    hist_array = cv2.calcHist([image_gray], [0], None, [256], [0.0, 256.0])
    hist_reshape = hist_array.reshape(1,256)
    temp_matrix = np.tile(hist_reshape, (256, 1))
    sum_diag_hist = np.sum(np.multiply(base_matrix,temp_matrix),axis=1)

    image_gray_value = image_gray.reshape(1,image_height*image_width)[0]
    image_gray_copy = np.zeros(image_height * image_width, dtype=np.int32)

    for i,x in enumerate(image_gray_value):
        image_gray_copy[i] = sum_diag_hist[x]
    image_result = image_gray_copy.reshape(image_height,image_width)
    image_result = (image_result-np.min(image_result))/(np.max(image_result)-np.min(image_result))
    return image_result


if __name__ == '__main__':
    file = r"C:\Users\xxx\Desktop\001.png"

    start = time.time()
    image_gray = cv2.imread(file, 0)
    saliency_image = LC(image_gray)
    # cv2.imwrite(r"C:\Users\xxx\Desktop\001_1.png",saliency_image*255)
    end = time.time()

    print("Duration: %.2f seconds." % (end - start))
    cv2.imshow("gray saliency image", saliency_image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值