Ulcer detection may include calculating ulcer head scores for image pixels, and calculating ulcer red region scores for pixels, each score correlated to the probability that the pixel color is typical to ulcer heads, ulcer red regions, or a other regions. Ulcer head scores may be compared to an ulcer head threshold level and, based on the results, ulcer head candidates may be obtained. Ulcer red region scores may be compared to a threshold and ulcer red region candidates may be obtained. Ulcer candidates may be formed by creating pairs including an ulcer head candidate and a potential ulcer red region candidate. A grade for ulcer candidates indicating the probability that the ulcer candidate is an ulcer may be used to generate a score for the image, the score indicating the probability that the image includes an ulcer.