Я пытаюсь установить некоторые определенные c пикселей внутри изображения на черный, эти изображения находятся в формате tiff, что требует от меня разложения их в соответствующие кадры, поэтому мое изображение tiff имеет 50 разных кадров. Для такой задачи я использую простые значения, обращаясь к индексу пикселей в их заданной позиции и просто устанавливая их значения на 0. Например:
img[10, 50] = 0
каждый раз, когда я пытаюсь установить их пиксели, изображение мгновенно становится желтым. .
However, if I remove every line that changes/sets the pixel values to black, the image goes back to normal.
Here's my code:
from PIL import Image
%pylab inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
image = "myimage.tif"
path = "C:/Dataset/Face1" + image
plt.imshow(img)
img=mpimg.imread(path)
img[15, 60] = 0
img[15, 85] = 0
img[15, 105] = 0
img[35, 60] = 0
img[35, 85] = 0
img[35, 105] = 0
img[45, 60] = 0
img[43, 75] = 0
img[43, 92] = 0
img[43, 105] = 0
img[58, 55] = 0
img[65, 83] = 0
img[58, 110] = 0
img[75, 83] = 0
img[85, 75] = 0
img[85, 90] = 0
img[90 ,83] = 0
img[95, 60] = 0
img[99, 83] = 0
img[99, 103] = 0
I tried normalizing my image the easy way using opencv2:
img1 = cv2.imread('image.tif', cv2.IMREAD_GRAYSCALE)
final_img = cv2.normalize(img1, img1, 0, 255, cv2.NORM_MINMAX)
Got this instead:
введите описание изображения здесь
Как я разлагаю изображения
from PIL import Image
import matplotlib.pyplot as plt
imagepath = "face1.tif"
path = "C:/Users/images/" + imagepath
img = Image.open(path)
for i in range(50):
try:
img.seek(i)
img.save('C:/Users/images/face1/%s.tif'%(i,))
except EOFError:
break
Я хочу нормализовать изображение, когда я печатаю значения одного из самых светлых пикселей, на выходе получается что-то около 8353. Кроме того, преобразуйте его в 8-битное изображение, чтобы я мог просмотреть его на matplotlib.