Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

24.08.2013, 00:23. Просмотров 2502. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.08.2013, 00:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ и OpenCV. Оператор Собеля (C++):

Оператор Собеля для каждого елемента матрицы - C++
Привет, дано матрицу, каждый елемент которой -значение интенсивности пикселя изображения. Размер матрицы задается, заполняеться случайными...

Помогите с фильтром Собеля - C++
Мне нужно написать программу, которая бы обрабатывала изображение по фильтру Собеля(выделение границ на изображении). Вроде всё сделал по...

Нахождение границ изображения оператором Собеля - C++
Доброе время суток, форумчане! Нуждаюсь в вашей помощи! Выручайте!!!:help: Проблема состоит в непростом задании. Само задание выглядит...

Посчитать раздел границы фильтром Собеля и псевдомедианой - C++
Здравствуйте, помогите пожалуйста. Мне нужно посчитать посчитать матрицу : 0 1 1 0 0 ...

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

11
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 00:51 #2
Если так:
C++
1
const char* filename = argc >= 2 ? argv[1] : "Image0.jpg";
1
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 01:14  [ТС] #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' что это значит?
0
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:22 #4
Цитата Сообщение от Adrenaline59 Посмотреть сообщение
что это значит?
Компилятор не понимает что это такое. Скорее всего, в заголовочных файлах нет прототипа этой функции.
0
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 01:28  [ТС] #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 );
0
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:36 #6
Компилятор тут, скорее всего, не при чём... Хотя можно и попробовать... Есть другая среда? Как OpenCV подключали к Code::Blocks? Код откуда?

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

нет не находит(((
0
Миниатюры
С++ и OpenCV. Оператор Собеля  
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 01:53 #8
Или нужные хедеры не подключены, или в подключенных нет этих функций, может быть из-за того, что код не под эту версию библиотеки.
0
Kuzia domovenok
2119 / 1949 / 192
Регистрация: 25.03.2012
Сообщений: 6,755
Записей в блоге: 1
24.08.2013, 02:28 #9
Adrenaline59, ты либы openCV добавил в проект?
1
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 03:33 #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Adrenaline59, ты либы openCV добавил в проект?
Я подумал, что ошибку компилятор выдаёт (строку показывает), но посмотрел видео по ссылке, там точно такую же ошибку компоновщик выдаёт (там это видно). Библиотеки там, почему-то, не подключают (только путь к хедерам прописывают), и видео на этой ошибке заканчивается (может продолжение есть?). Тогда получается, что просто либы нужно подключить.
1
Миниатюры
С++ и OpenCV. Оператор Собеля  
Adrenaline59
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 6
24.08.2013, 22:10  [ТС] #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Я подумал, что ошибку компилятор выдаёт (строку показывает), но посмотрел видео по ссылке, там точно такую же ошибку компоновщик выдаёт (там это видно). Библиотеки там, почему-то, не подключают (только путь к хедерам прописывают), и видео на этой ошибке заканчивается (может продолжение есть?). Тогда получается, что просто либы нужно подключить.
Либы подключил и ура закомпилилось=) Только пока не могу запустить, проверить, просит библиотеку libopencv_core246.dll, пока нашёл только libopencv_core246.dll.a. Может кто знает где она и возможно ли чтобы при компиляции все какие нужны библиотеки записывались в проект?
0
Миниатюры
С++ и OpenCV. Оператор Собеля  
alsav22
5430 / 4825 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.08.2013, 23:19 #12
Цитата Сообщение от Adrenaline59 Посмотреть сообщение
Может кто знает где она
В папке bin.

Добавлено через 56 минут
Проще в студии сделать. Если mingv, то при запуске, почему-то чего-то не хватает.
0
24.08.2013, 23:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 23:19
Привет! Вот еще темы с ответами:

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? - C++
#include &lt;iostream&gt; using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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