Baixuzx7 / ZeroSharpen

MIT License
12 stars 0 forks source link

效果显示问题 #2

Open yandszzz opened 4 months ago

yandszzz commented 4 months ago

您好,非常感谢您提出的先进的全色锐化方法,我有个问题想向您请教,我使用我与您实验设置大小相同的一对图像进行实验,最后得出的实验结果不能在ENVI软件上正常显示,但是我测试了实验结果的部分评价指标是在正常范围内,请问在实验之前除了设置MS与PAN图像的路径之外,还需要调整其他参数吗?感谢您的解答

Baixuzx7 commented 4 months ago

您好,可能是图像数据类型导致的,为了方便显示,代码最后进行了uint8化的操作,可能需要您进行一定的修改。其次可以考虑用以下代码对生成的图像进行显示: import numpy as np import imageio.v3 as imageio import cv2 import os

def RSGenerate(image, percent, colorization=True):

RSGenerate(image,percent,colorization)

#                               --Use to correct the color
# image should be R G B format with three channels
# percent is the ratio when restore whose range is [0,100]
# colorization is True
m, n, c = image.shape
# print(np.max(image))
image_normalize = image / np.max(image)
image_generate = np.zeros(list(image_normalize.shape))
if colorization:
    # Multi-channel Image R,G,B
    for i in range(c):
        image_slice = image_normalize[:, :, i]
        pixelset = np.sort(image_slice.reshape([m * n]))
        maximum = pixelset[np.floor(m * n * (1 - percent / 100)).astype(np.int32)]
        minimum = pixelset[np.ceil(m * n * percent / 100).astype(np.int32)]
        image_generate[:, :, i] = (image_slice - minimum) / (maximum - minimum + 1e-9)
        pass
    image_generate[np.where(image_generate < 0)] = 0
    image_generate[np.where(image_generate > 1)] = 1
    image_generate = cv2.normalize(image_generate, dst=None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX)
return image_generate.astype(np.uint8)

if name == 'main': if not os.path.exists('./result/rs/lr/'): os.makedirs('./result/rs/lr/') if not os.path.exists('./result/rs/hr/'): os.makedirs('./result/rs/hr/')

file_list = os.listdir('./result/ori/hr/')
N = len(file_list)
for idx in range(N):
    image_lr = imageio.imread('./result/ori/lr/'+str(idx)+'.tif') # h w 4
    image_hr = imageio.imread('./result/ori/hr/'+str(idx)+'.tif') # H W 4
    image_lr_rs = RSGenerate(image_lr[:,:,[2,1,0]],1,1)
    image_hr_rs = RSGenerate(image_hr[:,:,[2,1,0]],1,1)
    imageio.imwrite('./result/rs/lr/' + str(idx) + '.tif',image_lr_rs)
    imageio.imwrite('./result/rs/hr/' + str(idx) + '.tif',image_hr_rs)