С++ учебники по обработке изображений с сторонней библиотекой

Я хочу изучить обработку изображений в C++, но я не хочу использовать стороннюю библиотеку для обработки изображений. Использование библиотеки для отображения изображений (изображений) в порядке, но все манипуляции должны выполняться вручную.

Пожалуйста, укажите мне хорошие учебные пособия. Я новичок в этой области, поэтому мне также нужно знать, как отображать изображение.

Ответ 1

Кажется, вам не хватает базовых знаний о цифровой обработке изображений, я рекомендую вам эту книгу. Цифровая обработка изображений (3-е издание) Рафаэль К. Гонсалес/Ричард Е. Вудс http://www.amazon.com/dp/013168728X

Для базовой операции с использованием OpenCV (с которой я знаком) приведен пример:

/*
function:image reverse
*/  
#include "stdafx.h"  
#include <stdlib.h>  
#include <stdio.h>  
#include <math.h>  
#include <cv.h>  
#include <highgui.h>  
int main(int argc, char *argv[])  
{  
    IplImage* img = 0;   
    int height,width,step,channels;  
    uchar *data;  
    int i,j,k;  
    if(argc<2)  
    {  
        printf("Usage: main <image-file-name>/n/7");  
        exit(0);  
    }  
    // Load image   
    img=cvLoadImage(argv[1],-1);  
    if(!img)  
    {  
        printf("Could not load image file: %s\n",argv[1]);  
        exit(0);  
    }  
    // acquire image info  
    height    = img->height;    
    width     = img->width;    
    step      = img->widthStep;    
    channels  = img->nChannels;  
    data      = (uchar *)img->imageData;  
    printf("Processing a %dx%d image with %d channels/n",height,width,channels);   
    // create display window  
    cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);   
    cvMoveWindow("mainWin", 100, 100);  
    // reverse image 
    for(i=0;i<height;i++)   
        for(j=0;j<width;j++)   
            for(k=0;k<channels;k++)  
                data[i*step+j*channels+k]=255-data[i*step+j*channels+k];  
    // display reversed image  
    cvShowImage("mainWin", img );  
    cvWaitKey(0);  
    cvReleaseImage(&img );  
    printf("height=%d  width=%d step=%d channels=%d",height,width,step,channels);  
    return 0;  
}