Od długiego czasu męczę się z zainstalowaniem open CV i połączeniem z jakimś środowiskiem programistycznym. Tak, wiem, w internecie jest kilka manuali do tego, niestety niewiele mi one dały i mam z tym wielki problem - czy to pod windowsem 7, czy pod ubuntu. Ostatecznie zainstalowałem Open CV 2.1 i Visuala C++ 2010 Express pod windą, mniej więcej wg tego poradnika:
poradnik
Wrzuciłem program wczytujący zdjęcie w jpg, wyświetlający je, wypisujący szerokość i wysokość, do wartości RGB poszczególnych pixeli też mogę się dostać. Natomiast jeśli chcę przejść na skalę szarości funkcją cvtColor lub przefiltrować obraz funkcją GaussianBlur - wynikowy obraz jest jednolicie szary, niezależnie od wczytanego zdjęcia wejściowego.
Nie wiem już, czy cały czas źle stosuję funkcje open CV (przypominam - wersja 2.1!), czy dostaję szary obraz bo nadal coś mam źle polinkowane i Visual jakoś nie wie jak te funkcje wykonywać.
Oto kod:
#include <iostream>
#include <math.h>
#include <cv.h>
#include <highgui.h>
using namespace std;
using namespace cv;
int main()
{
/* wczytanie zdjecia */
Mat image;
image = imread("test.jpg",1);
/* wyswietlenia liczby kolumn i wierszy */
cout<<"Liczba kolumn (szerokosc) : ";
cout<<image.cols<<endl;
cout<<"Liczba wierszy (wysokosc) : ";
cout<<image.rows<<endl<<endl;
/* odczytanie i wyswietlenie kolorow danego pixela */
/* cv::Vec3b pixelColor = image.at<cv::Vec3b>(20, 600);
int p1 = pixelColor[0];
int p2 = pixelColor[1];
int p3 = pixelColor[2];
cout<<p1<<" ; "<<p2<<" ; "<<p3<<endl; */
/* zmiana rozmiary zdjecia */
/* Mat resized(100,100, image.type());
resize(image, resized, resized.size()); */
/* wyswietlenie zdjecia */
/* imshow("Nazwa okna", image);
waitKey(); */
/* PRZEJSCIE NA SKALE SZAROSCI */
/* Mat grayImage;
cvtColor(image, grayImage, CV_BGR2GRAY);
Mat resized(500,500, image.type());
resize(grayImage, resized, resized.size());
imshow("Nazwa okna", resized); */
/* ZASTOSOWANIE BLURA */
/* GaussianBlur( image, image, Size(9, 9), 2, 2 );
Mat resized(500,500, image.type());
resize(image, resized, resized.size());
imshow("Nazwa okna", image); */
system("pause");
return 0;
}
Jak mówiłem, w tym programie zasadniczo nie działają fragmenty kodu zatytułowane "PRZEJSCIE NA SKALE SZAROSCI" i " /* ZASTOSOWANIE BLURA */" - jaki obrazek jpg bym nie wczytal, czy bede zmienial jego rozamir czy nie, czy uzyje CV_BGR2GRAY czy CV_RGB2GRAY - zawsze dostaje jednolicie szary obraz.
Już mnie złość bierze od siedzenia nad tym, będę zobowiązany jeśli ktoś z poprawnie zainstalowanym open cv 2.1 wrzuci mój kod i sprawdzi, czy zonk leży w złym zaprogramowaniu, czy jednak mam źle polinkowany open cv i Visual.
Za wszelką, możliwie rychłą pomoc - stukrotne dzięki!
<code>
, a nie[code]
.<code=cpp>
i [url] na <url> jeśli nie masz nic przeciwko, wygląda ładniej.