import matplotlib.image as img import glob import numpy as np from scipy.ndimage import filters, measurements, interpolation from math import pi import cv2 #图像直方图均衡化 def image_histogram_equalization(image): return cv2.equalizeHist(image) for saliency in glob.glob("output_scaled/zebra.png"): print(saliency) s = img.imread(saliency) s = cv2.imread(saliency,0) print(s.shape) image = image_histogram_equalization(s) print(image.max()) image[image>255 - 15.5] = 255 image[image<=255 - 15.5] = 0 print(r"output_fg/" + saliency[len("output_scaled/"):]) cv2.imwrite(r"output_fg/" + saliency[len("output_scaled/"):], image) image = image_histogram_equalization(s) print(image.max()) v = np.zeros_like(image) v[image>15.5] = 0 v[image<=15.5] = 255 print(r"output_bg/" + saliency[len("output_scaled/"):]) cv2.imwrite(r"output_bg/" + saliency[len("output_scaled/"):], v)
时间: 2024-04-07 21:29:19 浏览: 85
img_matlab_直方图均衡化_
5星 · 资源好评率100%
这段代码实现了图像直方图均衡化,并将处理后的图像分为前景和背景两部分保存。具体来说,代码首先使用cv2.imread函数读取一张图片,然后调用image_histogram_equalization函数进行直方图均衡化处理。接着,根据像素值的大小将处理后的图像分为前景和背景两部分,并保存在不同的文件夹中。其中,像素值大于255-15.5的被认为是前景,小于等于255-15.5的被认为是背景。最后,使用cv2.imwrite函数将处理后的图像保存在指定的文件夹中。
阅读全文