Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 5.00
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
#1

С++ и OpenCV. Оператор Собеля - C++

24.08.2013, 00:23. Просмотров 2261. Ответов 11
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <cv.h>
#include <highgui.h>
#include <stdlib.h>
#include <stdio.h>
 
IplImage* image = 0;
IplImage* dst = 0;
IplImage* dst2 = 0;
 
int xorder = 1;
int xorder_max = 2;
 
int yorder = 1;
int yorder_max = 2;
 
//
// функция-обработчик ползунка -
// порядок производной по X
void myTrackbarXorder(int pos) {
        xorder = pos;
}
 
//
// функция-обработчик ползунка -
// порядок производной по Y
void myTrackbarYorder(int pos) {
        yorder = pos;
}
 
int main(int argc, char* argv[])
{
        // имя картинки задаётся первым параметром
       char* filename = argc >= 2 ? argv[1] : "Image0.jpg";                   // <-------
        // получаем картинку
        image = cvLoadImage(filename, 1);
        // создаём картинки
        dst = cvCreateImage( cvSize(image->width, image->height), IPL_DEPTH_16S, image->nChannels);
        dst2 = cvCreateImage( cvSize(image->width, image->height), image->depth, image->nChannels);
 
        printf("[i] image: %s\n", filename);
        assert( image != 0 );

На выделенной строке вылетает main.cpp|34|error: invalid conversion from 'const char*' to 'char*'
Подскажите ,пожалуйста, как исправить? Пишу на CodeBlocks
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 00:23     С++ и OpenCV. Оператор Собеля
Посмотрите здесь:
Оператор Собеля для каждого елемента матрицы C++
Помогите с фильтром Собеля C++
C++ Нахождение границ изображения оператором Собеля
Посчитать раздел границы фильтром Собеля и псевдомедианой C++
Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки C++
C++ Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1
C++ Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 00:51     С++ и OpenCV. Оператор Собеля #2
Если так:
C++
1
const char* filename = argc >= 2 ? argv[1] : "Image0.jpg";
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 01:14  [ТС]     С++ и OpenCV. Оператор Собеля #3
Цитата Сообщение от alsav22 Посмотреть сообщение
Если так:
C++
1
const char* filename = argc >= 2 ? argv[1] : "Image0.jpg";

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main(int argc, char* argv[])
{
        // имя картинки задаётся первым параметром
        const char* filename = argc >= 2 ? argv[1] : "Image0.jpg";
 
        // получаем картинку
>>>>> image = cvLoadImage(filename, 1);<<<<<<<<<
        // создаём картинки
        dst = cvCreateImage( cvSize(image->width, image->height), IPL_DEPTH_16S, image->nChannels);
        dst2 = cvCreateImage( cvSize(image->width, image->height), image->depth, image->nChannels);
 
        printf("[i] image: %s\n", filename);
        assert( image != 0 );
теперь на этой строке: image = cvLoadImage(filename, 1);
main.cpp|42|undefined reference to `cvLoadImage' что это значит?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:22     С++ и OpenCV. Оператор Собеля #4
Цитата Сообщение от Adrenaline59 Посмотреть сообщение
что это значит?
Компилятор не понимает что это такое. Скорее всего, в заголовочных файлах нет прототипа этой функции.
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 01:28  [ТС]     С++ и OpenCV. Оператор Собеля #5
Цитата Сообщение от alsav22 Посмотреть сообщение
Компилятор не понимает что это такое. Скорее всего, в заголовочных файлах нет прототипа этой функции.
это можно исправить кроме как попробовать другой компилятор?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <cv.h>
#include <highgui.h>
#include <stdlib.h>
#include <stdio.h>
 
IplImage* image = 0;
IplImage* dst = 0;
IplImage* dst2 = 0;
 
int xorder = 1;
int xorder_max = 2;
 
int yorder = 1;
int yorder_max = 2;
 
//
// функция-обработчик ползунка -
// порядок производной по X
void myTrackbarXorder(int pos) {
        xorder = pos;
}
 
//
// функция-обработчик ползунка -
// порядок производной по Y
void myTrackbarYorder(int pos) {
        yorder = pos;
}
 
int main(int argc, char* argv[])
{
        // имя картинки задаётся первым параметром
        const char* filename = argc >= 2 ? argv[1] : "Image0.jpg";
 
        // получаем картинку
        image = cvLoadImage(filename, 1);
        // создаём картинки
        dst = cvCreateImage( cvSize(image->width, image->height), IPL_DEPTH_16S, image->nChannels);
        dst2 = cvCreateImage( cvSize(image->width, image->height), image->depth, image->nChannels);
 
        printf("[i] image: %s\n", filename);
        assert( image != 0 );
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:36     С++ и OpenCV. Оператор Собеля #6
Компилятор тут, скорее всего, не при чём... Хотя можно и попробовать... Есть другая среда? Как OpenCV подключали к Code::Blocks? Код откуда?

Добавлено через 3 минуты
Если эту строку закоментировать, то другие функции находит (cvCreateImage())?
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 01:42  [ТС]     С++ и OpenCV. Оператор Собеля #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Компилятор тут, скорее всего, не при чём... Хотя можно и попробовать... Есть другая среда? Как OpenCV подключали к Code::Blocks? Код откуда?
Вот сейчас докачаю visualstudio c++, подключу OpenCV и буду пробовать
OpenCV подключал так http://www.youtube.com/watch?v=xcK-y...Mo6HhQJu73GuGa

нет не находит(((
Миниатюры
С++ и OpenCV. Оператор Собеля  
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:53     С++ и OpenCV. Оператор Собеля #8
Или нужные хедеры не подключены, или в подключенных нет этих функций, может быть из-за того, что код не под эту версию библиотеки.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
24.08.2013, 02:28     С++ и OpenCV. Оператор Собеля #9
Adrenaline59, ты либы openCV добавил в проект?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 03:33     С++ и OpenCV. Оператор Собеля #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Adrenaline59, ты либы openCV добавил в проект?
Я подумал, что ошибку компилятор выдаёт (строку показывает), но посмотрел видео по ссылке, там точно такую же ошибку компоновщик выдаёт (там это видно). Библиотеки там, почему-то, не подключают (только путь к хедерам прописывают), и видео на этой ошибке заканчивается (может продолжение есть?). Тогда получается, что просто либы нужно подключить.
Миниатюры
С++ и OpenCV. Оператор Собеля  
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 22:10  [ТС]     С++ и OpenCV. Оператор Собеля #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Я подумал, что ошибку компилятор выдаёт (строку показывает), но посмотрел видео по ссылке, там точно такую же ошибку компоновщик выдаёт (там это видно). Библиотеки там, почему-то, не подключают (только путь к хедерам прописывают), и видео на этой ошибке заканчивается (может продолжение есть?). Тогда получается, что просто либы нужно подключить.
Либы подключил и ура закомпилилось=) Только пока не могу запустить, проверить, просит библиотеку libopencv_core246.dll, пока нашёл только libopencv_core246.dll.a. Может кто знает где она и возможно ли чтобы при компиляции все какие нужны библиотеки записывались в проект?
Миниатюры
С++ и OpenCV. Оператор Собеля  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 23:19     С++ и OpenCV. Оператор Собеля
Еще ссылки по теме:
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. C++
C++ Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
C++ Как перегрузить оператор<< и оператор>> ?
C++ Оператор break как оператор go to next

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 23:19     С++ и OpenCV. Оператор Собеля #12
Цитата Сообщение от Adrenaline59 Посмотреть сообщение
Может кто знает где она
В папке bin.

Добавлено через 56 минут
Проще в студии сделать. Если mingv, то при запуске, почему-то чего-то не хватает.
Yandex
Объявления
24.08.2013, 23:19     С++ и OpenCV. Оператор Собеля
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru