Сообщество Opencv предлагает несколько процедур для загрузки изображения, доступа к значениям изображения. Фактически, в большинстве учебников по opencv мы найдем C-версию для многих функций. Вы можете посмотреть эту ссылку C_Api functions .
Однако, есть один отказ от ответственности: подпрограммы C opencv меньше по сравнению с подпрограммами C ++ / python. Но если у вас нет выбора, они всегда готовы вернуться.
Более того, интернет-сообщество считает, что использование целей C (подпрограммы Opencv) является устаревшим методом по двум причинам:
- Доступных подпрограмм немного (я сталкивался с этой проблемой).
Нет совместимости между Mat
объектами C ++ и IplImage/cvMat
объектами C.
Пример кода (размытие) после включения stdio.h, highgui.h, cv.h
библиотек:
`int main (int argc, char ** argv) {
IplImage* img = 0;
IplImage* out = 0;
if( argc < 2 ) {
printf( "Usage: Accepts one image as argument\n" );
exit( EXIT_SUCCESS );
}
img = cvLoadImage( argv[1] );
if( !img ) {
printf( "Error loading image file %s\n", argv[1]);
exit( EXIT_SUCCESS );
}
out = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, 3 );
cvSmooth( img, out, CV_GAUSSIAN, 3, 3 );
cvReleaseImage( &img );
cvReleaseImage( &out );
cvDestroyWindow( "Example1" );
cvDestroyWindow( "Output" );
return EXIT_SUCCESS;
} `