颜色相关图

2022-05-29 10:10:27 浏览数 (1)

代码语言:javascript复制
import numpy as np
from matplotlib import pyplot as plt
def is_vaild(X,Y,point):
    if point[0]<0 or point[0]>=X:
        return False
    if point[1]<0 or point[1]>=Y:
        return False
    return True
def getNeighbors(X,Y,x,y,dist):
    cn1=(x dist,y dist)
    cn2=(x dist,y)
    cn3=(x dist,y-dist)
    cn4=(x,y-dist)
    cn5=(x-dist,y-dist)
    cn6=(x-dist,y)
    cn7=(x-dist,y dist)
    cn8=(x,y dist)
    point=(cn1,cn2,cn3,cn4,cn5,cn6,cn7,cn8)
    Cn=[]
    for i in point:
        if is_vaild(X,Y,i):
            Cn.append(i)
    return Cn      
def corrlogram(img,dist):
    xx,yy,tt=img.shape
    cgram=np.zeros((256,256),np.uint8)
    for x in range(xx):
        for y in range(yy):
            for t in range(tt):
                color_i=img[x,y,t]# X的某一个通道的像素值
                neighbors_i=getNeighbors(xx,yy,x,y,dist)
            for j in neighbors_i:
                j0=j[0]
                j1=j[1]
                color_j=img[j0,j1,t]#X的某一个邻域像素点的某一个通道的像素值
                cgram[color_i,color_j] =1
    return cgram
image=cv2.imread('C:/Users/xpp/Desktop/Lena.png',1)
plt.imshow(image)
plt.show()
dist=4
cgram=corrlogram(image,dist)
plt.imshow(cgram)
plt.show()

算法:颜色相关图是显示像素在图像中的占比,反映不同颜色对间的空间位置的相关性,比颜色直方图和颜色聚合向量具有更高的检索效率,特别是查询空间关系一致的图像。

0 人点赞