Я хотел бы выполнить классификацию пикселей на изображениях RGB на основе исходных образцов обучения заданного количества классов. Так что у меня есть, например. 4 класса, содержащие пиксели (r, g, b), таким образом, цель состоит в том, чтобы сегментировать изображение на четыре фазы.Классификация пикселов максимального правдоподобия в python opencv
Я обнаружил, что python opencv2 имеет алгоритм максимизации ожиданий, который мог бы выполнять эту работу. Но, к сожалению, я не нашел никакого учебника или материала, который мог бы объяснить мне (поскольку я начинаю), как работать с алгоритмом.
Не могли бы вы предложить какой-либо учебник, который можно использовать в качестве отправной точки?
Update ... другой подход для кода ниже:
**def getsamples(img):
x, y, z = img.shape
samples = np.empty([x * y, z])
index = 0
for i in range(x):
for j in range(y):
samples[index] = img[i, j]
index += 1
return samples
def EMSegmentation(img, no_of_clusters=2):
output = img.copy()
colors = np.array([[0, 11, 111], [22, 22, 22]])
samples = getsamples(img)
#em = cv2.ml.EM_create()
em = cv2.EM(no_of_clusters)
#em.setClustersNumber(no_of_clusters)
#em.trainEM(samples)
em.train(samples)
x, y, z = img.shape
index = 0
for i in range(x):
for j in range(y):
result = em.predict(samples[index])[0][1]
#print(result)
output[i][j] = colors[result]
index = index + 1
return output
img = cv2.imread('00.jpg')
smallImg = small = cv2.resize(img, (0,0), fx=0.5, fy=0.5)
output = EMSegmentation(img)
smallOutput = cv2.resize(output, (0,0), fx=0.5, fy=0.5)
cv2.imshow('image', smallImg)
cv2.imshow('EM', smallOutput)
cv2.waitKey(0)
cv2.destroyAllWindows()**
Короче говоря: G O_o ственный. Long: Google «Алгоритм максимизации ожиданий». Как только у вас будет достаточно информации о концепции, выполните следующие действия: «Алгоритм максимизации ожиданий opencv». Обратите внимание: opencv - это библиотека, а не книга. Вам необходимо изучить методы из исследовательской статьи, книг, вики или любого источника, с которым вам наиболее удобно. Причина для downvote: - Сначала я нашел несколько обучающих программ. Если все еще в беде, google же на youtube, и вы найдете видео-уроки того же самого. – saurabheights
поиск эквивалентной функции между opencv 2.4.x и 3.0, для использования моего кода в качестве источника: https://subokita.com/2014/03/24/image-segmentation-using-opencvs-expectation-maximization/ – eyllanesc