我目前正在处理天文数据(图像),我的任务是编写一个程序,在给定图像上以适合的格式查找太阳黑子。
据我了解,该任务与 cv2 相关,但我遇到了格式方面的巨大障碍。图像数据是 2D float32 numpy 数组,当给 cv2 时会丢失所有细节。
我也尝试将 float32 转换为 uint8,但结果并不好。
左:之前(matplotlib),右:之后(cv2)
正如所见,细节丢失了,这不是一张好照片。那么,也许有解决这个问题的替代方法?
[import cv2
from astropy.io import fits
import matplotlib.pyplot as plt
import numpy as np
img_l = fits.open('hmi.Ic_45s.20170605_000000_TAI.2.continuum.fits')
img = img_l\[0\].data
plt.imshow(img) #Showing Image in matplotlib
cv2.imshow('',img) #The image is white round with black background
image = np.array(img/255, dtype = np.uint8) #Converting float32 to uint8
cv2.imshow('', image) #Getting converted image