| 
	
	
		
		
		
		
		 Вот простая на первый взгляд задача, и даже о распознавании в ней не пахнет, но ... 
 
Допустим перед загрузкой изображения на сервер или уже на сервере, что не принципиально, нужно удалить черноту или белое обрамляющее рисунок, к примеру это результат сканирования. Даже условно будем считать, что ориентация при этом идеальная, сама полезная часть изображения без угла наклона. 
 
Пусть нужно вырезать белую/серую канву. С цветом работать, это много мороки и не удобно, значит преобразуем изображение в градации серого. Работать с цветовой моделью RGB тоже не удобно, опять будут лишние расчеты. А вот цветовая модель HSB в данном случае будет самой удобной - задав 0 для H и S, указав нижний порог яркости (В) до которого нужно удалять найденные пиксели, сравнивая яркость преобразованного RGB цвета ячейки в HSB с заданным диапазоном (для белого/серого от 100% до нижнего указанного). 
 
При этом не обязательно сканировать все ячейки каймы, нужно лишь только узнать ее ширину с каждого края, и для этого было бы достаточно опросить центральные по горизонтали и вертикали ячейки, начиная с краев и к центру изображения. Это совсем не много, одного цикла с малым числом итераций хватит. 
 
Было бы, если бы не но. А что если изображение, это комната с окном, на стекле которого мороз нарисовал свой шедевр, и стекла которого в аккурат сливаются с каймой, и центральные пиксели как раз напоролись на этот шедвер. Цвет, насыщенность вполне могут попадать в диапазон для удаления. А значит потребуется анализ. А может быть и луна на ночном небе, звезды, паруса яхты... 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 26.01.2016 в 12:48.
				
				
			
		
		
	
		
		
	
	
	 |