2009-10-08 5 views
2

Я новичок в OpenCV и только начал просеивать API. Я намерен получать значения цвета, интенсивности и текстуры каждого пикселя, составляющего изображение. Я возился со структурой - IplImage, чтобы начать, но не смог добиться большого прогресса.OpenCV: выбор цвета, интенсивности и текстуры изображения

Пожалуйста, дайте мне знать о любых средствах для этого.

веселит

ответ

3

Вы пробовали OpenCV 2.0? У них есть новый C++-интерфейс, который упрощает работу. Вы можете использовать свой новый класс Mat для загрузки изображений, эффективного доступа к пикселям и т. Д. Это намного чище, чем удовольствие от IplImage. Я использую \ doc \ opencv.pdf как свою ссылку на все, что мне нужно. У него есть учебники и примеры с новым интерфейсом на C++ и т. Д. - достаточно и больше, чтобы вы начали.

Если у вас есть более конкретные вопросы OpenCV, не стесняйтесь спрашивать.

Вот некоторые демо-код, чтобы вы начали: (я использовал пространство имен резюме):

// Load the image (looks like MATLAB :) ?) 
    Mat M = imread("h:\\lena.bmp"); 
    // Display 
    namedWindow("Lena",CV_WINDOW_AUTOSIZE); 
    imshow("Lena",M); 
    waitKey(); 

    // Crop out rectangle from (100,100) of size (200,200) of the red channel 
    const int offset[2] = {100,100}; 
    const int dims[2] = {200,200}; 
    Mat Red(dims[0],dims[1],CV_8UC1); 

    // Read it from M into Red 
    uchar* lena = M.data; 
    for(int i=0;i<dims[0];++i) 
     for(int j=0;j<dims[0];++j) 
     { 
      // P = i*rows*channels + j*channels + c 
      Red.at<uchar>(i,j) = *(lena + (i+offset[0])*M.rows*M.channels() + (j+offset[1])*M.channels()+0); 
     } 

    //Display 
    namedWindow("RedRect",CV_WINDOW_AUTOSIZE); 
    imshow("RedRect",Red); 
    waitKey(); 
+0

Благодаря Jacob. Это выглядит многообещающе для меня. Однако у меня есть OpenCV, установленный на компьютерах Red Hat в нашей лаборатории, и мне было интересно, как найти его версию. Действительно ли rpm -qa opencv-devel достаточно для поиска информации о версии? Я попытался взглянуть на документы (например, часто задаваемые вопросы, лицензия, readme), которые являются частью установки, но никто не говорит о версии. Какие-нибудь подсказки? Я попытался скомпилировать (включив cv.h и highgui.h) ваш фрагмент, но он говорит: «Мать» не была объявлена ​​в этой области. Мне не хватает заголовка или его, потому что у меня нет последней версии? – Arnkrishn

+0

Попробуйте использовать пространство имен cv. – Jacob

+0

Что касается версии, я проверил OpenCV из своего онлайн-хранилища SVN и скомпилировал его с помощью CMake. – Jacob

Смежные вопросы