Перейти к содержимому
Compvision.ru

Kvothe

Пользователи
  • Количество публикаций

    2
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Kvothe


  1. 9 часов назад, Nuzhny сказал:

    Надо искать небо исключительно на одном этом фото? Или задача стоит более обшно? А облака относятся к небу? Небо может быть розовым-закатным, пасмурным, вечерним, со звёздами? Оно будет на каждом изображении гарантировано? Или могут быть изображения без неба?

    Странный подход, когда отбрасывается вся цветовая информация, казалось бы, небо голубое и это можно использовать.

    Я бы начал разработку с классики: создания и разметки наиболее поного датасета. Тогда проблема станет видна во всей своей красе.

    На любом фото. Изначально стоит задача искать только полностью голубое небо без облаков. Если облака и могут быть на фото то совсем мало. Изображения без неба конечно могут быть надо это учитывать. Я двигался в сторону нахождения линии где кончаются объекты и начинается небо, но там оказалось слишком сложно и я все еще не могу в этом разобраться. Если найти эту линию то тогда сразу понятно что все что выше её это небо. Спасибо за ответ.

    house.jpg

    image01_res2.jpg

    sunset.jpg

    image01_res2.jpg


  2. Всем привет. Передо мной стоит задача распознать небо на фото. Использую Visual Studio и OpenCV. Из результата хорошо видно что область неба более темная, но что делать дальше? Результатом может быть просто выведение части изображения с небом в отдельный файл.  Возможно я спрашиваю что то совсем простое так как новичок в opencv. И за это прошу прощения. Заранее спасибо.

    int main(int argc, char** argv)
    {
    	
    	
    	Mat src, src_gray;
    
    	Mat grad;
    	int scale = 1;
    	int delta = 0;
    	int ddepth = CV_64F;
    	
    	
    	//int c;
    
    	/// Load an image
    	src = imread("1.jpg");;
    	
    	GaussianBlur(src, src, Size(3, 3), 0, 0, BORDER_DEFAULT);
    
    	/// Convert it to gray
    	cvtColor(src, src_gray, CV_BGR2GRAY);
    
    	
    		/// Generate grad_x and grad_y
    		Mat gradient_image;
    		Mat grad_x, grad_y;
    		Mat abs_grad_x, abs_grad_y;
    
    		/// Gradient X
    		//Scharr( src_gray, grad_x, ddepth, 1, 0, scale, delta, BORDER_DEFAULT );
    		Sobel(src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_REPLICATE);
    		convertScaleAbs(grad_x, abs_grad_x);
    
    		/// Gradient Y
    		//Scharr( src_gray, grad_y, ddepth, 0, 1, scale, delta, BORDER_DEFAULT );
    		Sobel(src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_REPLICATE);
    		convertScaleAbs(grad_y, abs_grad_y);
    		pow(abs_grad_x, 2, abs_grad_x);
    		pow(abs_grad_y, 2, abs_grad_y);
    		add(abs_grad_x, abs_grad_y, grad);
    		
    		gradient_image = grad;
    
    
    		double ret, thresh = threshold(src_gray, src_gray,50, 255, THRESH_BINARY);
    		imshow("gray", ret);
    		imshow("sobel", src_gray);
    	//imshow("sobel", grad);
    	//imwrite("image01_res2.jpg", grad);
    	//imshow("cobel1", abs_grad_y);
    	//imshow("cobel2", abs_grad_x);
    	
    	imshow("orig", src);
    	
    
    	
    	waitKey(0);
    	return 0;
    }

     

    32.JPG

    image01_res22.jpg

×