Я хочу проверить каждый пиксель за 11 imgs, избавиться от экстремума и использовать среднее значение для вычисления среднего значения.
import cv2
import numpy as np
img1 = cv2.imread("J:/1.jpg", cv2.IMREAD_COLOR)
img2 = cv2.imread("J:/2.jpg", cv2.IMREAD_COLOR)
img3 = cv2.imread("J:/3.jpg", cv2.IMREAD_COLOR)
img4 = cv2.imread("J:/4.jpg", cv2.IMREAD_COLOR)
img5 = cv2.imread("J:/5.jpg", cv2.IMREAD_COLOR)
img6 = cv2.imread("J:/6.jpg", cv2.IMREAD_COLOR)
img7 = cv2.imread("J:/7.jpg", cv2.IMREAD_COLOR)
img8 = cv2.imread("J:/8.jpg", cv2.IMREAD_COLOR)
img9 = cv2.imread("J:/9.jpg", cv2.IMREAD_COLOR)
img10 = cv2.imread("J:/10.jpg", cv2.IMREAD_COLOR)
img11 = cv2.imread("J:/11.jpg", cv2.IMREAD_COLOR)
imgList = [img1, img2, img3, img4, img5, img6, img7, img8, img9, img10, img11]
height = img1.shape[0]
width = img1.shape[1]
imgall = np.array(imgList)
png = np.zeros((height, width, 4), dtype=np.uint8)
start1 = cv2.getTickCount()
for yh in range(height):
for xw in range(width):
pstd = np.std(imgall[:, yh, xw, :], axis=0)
pstdmean = np.mean(pstd)
if pstdmean < 50:
if pstdmean < 10:
png[yh, xw] = list(np.mean(imgall[:, yh, xw, :], axis=0)) + [255]
else:
pmedian = np.median(imgall[:, yh, xw, :], axis=0)
png[yh, xw] = list(pmedian) + [255]
end1 = cv2.getTickCount()
during1 = (end1 - start1) / cv2.getTickFrequency()
print(during1)
Я пытаюсь найти, как получить "номер сбора "/" номер режима ", например: гистограмма, евклидово расстояние, bgr2grey, нормальное распределение ...
Я хотел бы заменить этот плохой медианный метод.