0 / 0 / 0
Регистрация: 08.02.2019
Сообщений: 1

Ошибка в коде

08.02.2019, 14:14. Показов 3713. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я начинающий программист и хочу создать проект на основе c++ и ардуино. У меня есть код, но при попытке компиляции выдает ошибки:
Ошибка 11 error LNK2019: ссылка на неразрешенный внешний символ "public: void __cdecl Tserial::sendChar(char)" (?sendChar@Tserial@@QEAAXD@Z) в функции "void __cdecl detectAndDisplay(class cv::Mat)" (?detectAndDisplay@@YAXVMat@cv@@@Z) C:\Users\user\Downloads\Face_Tracking-Arduino-openCV-master\Face_detection+Arduino\Source.obj Face_detection+Arduino
Код:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
* @file objectDetection.cpp
* Remixed by Hazim Bitar
* Based on code writtenby A. Huaman ( based in the classic facedetect.cpp in samples/c )
* @brief A simplified version of facedetect.cpp, show how to load a cascade classifier and how to find objects (Face + eyes) in a video stream
* Mdified to intercept X,Y of center of face object and sends them to Arduino Uno via serial
*/
#include "opencv2/objdetect/objdetect.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include "Tserial.h"
#include <opencv/cv.h>
using namespace std;
using namespace cv;
 
/** Function Headers */
void detectAndDisplay(Mat frame);
/** Global variables */
//-- Note, either copy these two files from opencv/data/haarscascades to your current folder, or change these locations
String face_cascade_name = "haarcascade_frontalface_alt.xml";
String eyes_cascade_name = "haarcascade_eye_tree_eyeglasses.xml";
CascadeClassifier face_cascade;
CascadeClassifier eyes_cascade;
string window_name = "Capture - Face detection - Remixed by TechBitar";
 
// Serial to Arduino global declarations
int arduino_command;
Tserial *arduino_com;
short MSBLSB = 0;
unsigned char MSB = 0;
unsigned char LSB = 0;
// Serial to Arduino global declarations
 
int main(int argc, const char** argv)
{
    VideoCapture capture;
    Mat frame;
 
    // serial to Arduino setup 
    arduino_com = new Tserial();
    if (arduino_com != 0) {
        arduino_com ->connect("COM6", 57600, spNONE);
    }
    // serial to Arduino setup 
 
    //-- 1. Load the cascades
    if (!face_cascade.load(face_cascade_name)){ printf("--(!)Error loading\n"); return -1; };
    if (!eyes_cascade.load(eyes_cascade_name)){ printf("--(!)Error loading\n"); return -1; };
 
    //-- 2. Read the video stream
    capture = capture.open(0);
    if (capture.isOpened())
    {
        while (true)
        {
            frame = capture.read(frame);
            //-- 3. Apply the classifier to the frame
            if (!frame.empty())
            {
                detectAndDisplay(frame);
            }
            else
            {
                printf(" --(!) No captured frame -- Break!"); break;
            }
 
            int c = waitKey(10);
            if ((char)c == 'c') { break; }
        }
    }
    // Serial to Arduino - shutdown
    arduino_com->disconnect();
    delete arduino_com;
    arduino_com = 0;
    // Serial to Arduino - shutdown
    return 0;
}
 
/**
* @function detectAndDisplay
*/
void detectAndDisplay(Mat frame)
{
 
    std::vector<Rect> faces;
    Mat frame_gray;
 
    cvtColor(frame, frame_gray, COLOR_RGB2GRAY);
    equalizeHist(frame_gray, frame_gray);
    //-- Detect faces
    face_cascade.detectMultiScale(frame_gray, faces, 1.1, 2, 0 | CASCADE_SCALE_IMAGE, Size(30, 30));
 
    for (int i = 0; i < faces.size(); i++)
    {
        Point center(faces[i].x + faces[i].width*0.5, faces[i].y + faces[i].height*0.5);
        ellipse(frame, center, Size(faces[i].width*0.5, faces[i].height*0.5), 0, 0, 360, Scalar(255, 0, 255), 2, 8, 0);
        cout << "X:" << faces[i].x << "  y:" << faces[i].y << endl;
 
        // send X,Y of face center to serial com port   
        // send X axis
        // read least significant byte 
        LSB = faces[i].x & 0xff;
        // read next significant byte 
        MSB = (faces[i].x >> 8) & 0xff;
        arduino_com->sendChar(MSB);
        arduino_com->sendChar(LSB);
 
        // Send Y axis
        LSB = faces[i].y & 0xff;
        MSB = (faces[i].y >> 8) & 0xff;
        arduino_com->sendChar(MSB);
        arduino_com->sendChar(LSB);
        // serial com port send  
 
        Mat faceROI = frame_gray(faces[i]);
        std::vector<Rect> eyes;
    }
 
    //-- Show what you got
    imshow(window_name, frame);
 
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2019, 14:14
Ответы с готовыми решениями:

Ошибка в коде взаимодействия клиента и сервера на основе протокола TCP/IP (ошибка в коде)
Задание: Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Реализовать параллельное соединение с использованием...

Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все хорошо. Сейчас попробовал снова запустить...

Ошибки в коде Qt - ошибка: undefined reference to `qMain(int, char**)'; ошибка: error: ld returned 1 exit status
Здравствуйте, есть проект в нем 2 ошибки, не очень понимаю как их можно решить. Помогите, буду признателен! Вот main.cpp #include...

2
Just Do It!
 Аватар для XLAT
4212 / 2671 / 655
Регистрация: 23.09.2014
Сообщений: 9,090
Записей в блоге: 3
08.02.2019, 19:57
метод
arduino_com->sendChar(MSB);
находится за пределами вашего проекта.

очевидно, вы забыли подключить зависимые либы.
0
0 / 0 / 0
Регистрация: 02.03.2021
Сообщений: 1
02.03.2021, 18:26
У вас получился проект? Пытаюсь сделать подобное, не получается, напишите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2021, 18:26
Помогаю со студенческими работами здесь

Ошибка в коде CS0649. Не понятно почему выдает данную ошибку.Также ошибка в форме со словом ref
Код Класса using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; ...

Ошибка в коде (Ошибка сегментирования (core dumped)
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

Ошибка в коде и ошибка HTTP 400
Здарова всем, у меня тут проблема случилась, я только начинаю программировать. Выдает ошибку HTTP Error 400, проблему нашел, заключалась...

Ошибка в коде , ошибка 200
Всем привет, помогите пожалуйста, я новичек в Паскале, вот программа, суть её переводить любое число в любую систему исчесления, но вот...

В чём ошибка.В коде там где коментарий там ошибка поучается.
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; class CMyString{ char *pStr; public: ...


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

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

Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru