Limiarização
*/
#include <cv.h> // biblioteca OpenCV
#include <highgui.h> // biblioteca da OpenCV
#include <stdio.h>
#include <string.h> int main(int argc,char *argv[]) {
/* step_mono irá receber widhStep que contém o número de bytes entre pontos da mesma coluna e linhas sucessivas. */ int height, width, step, step_mono, channels; int i, j, k; char file_name[100];
// data_mono é para manipular os dados de uma imagem monocromática uchar *data, *data_mono; if(argc < 2) { // se cair aqui é porque não foi passada nenhuma imagem pelo promt de comandos... printf("\nDigite o caminho da imagem (exemplo: imagem.jpg):\n"); scanf(" %[^\n]%*c", file_name); } else { // se for passada uma imagem pelo prompt, então eu copio para "file_name" strcpy(file_name, argv[1]); }
IplImage* frame = cvLoadImage(file_name, 1); /* A função cvLoadImage carrega a imagem baseada no nome da mesma. Um ponteiro para uma estrutura de dados da imagem alocada é retornado. A estrutura IplImage é uma estrutura que o opencv usa pra lidar com as imagens. Usa-se o ponteiro que cvLoadImage() retorna para manipular a imagem e os dados da imagem. O primeiro argumento de cvLoadImage é o caminho e o segundo é a cor (iscolor). Por padrão, as imagens são carregadas com três canais com 8 bits por canal. O segundo parâmetro é 1 (CV_LOAD_IMAGE_COLOR). Isso significa que independente do número de canais da imagem, a imagem será convertida para três canais se necessário. Algumas flags para o segundo parâmetro de cvLoadImage: