Wydaje się, że brakuje Ci podstawowej wiedzy na temat przetwarzania cyfrowego obrazu, polecam Ci tę książkę. cyfrowego przetwarzania obrazu (3rd Edition) Rafael C.Gonzalez/Richard E.Woods http://www.amazon.com/dp/013168728X
Do podstawowych operacji za pomocą OpenCV (które znam), oto przykład:
/*
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;
}
Chcesz manipulować obrazami bez używania gotowej biblioteki? Masz przed sobą bardzo, bardzo długą drogę. Nie będzie tego samouczka. Będziesz musiał przeczytać specyfikację JPG, zrozumieć teorię manipulowania wyobrażeniami (chyba że robisz proste rzeczy, takie jak kadrowanie), a następnie zastosować te manipulacje do określonego formatu JPG. A potem będziesz musiał powtórzyć dla PNG, GIF, itd. – Corbin
Jeśli twoim celem jest przetwarzanie obrazu * powinieneś przynajmniej użyć biblioteki do załadowania obrazów z różnych formatów kontenerów, takich jak png, jpeg, tiff, ... . Same w sobie nie mają nic wspólnego z przetwarzaniem. Poza tym to pytanie jest oczywiście zbyt szerokie, użyj google. – KillianDS
Jeśli twoim głównym celem jest nauka cyfrowego przetwarzania obrazu, sugeruję, aby zacząć od używania Matlaba zamiast C++. – Korchkidu