
Dmitry
13.06.2018
07:27:12
Народ, есть ли у кого опыт работы с OpenCV, вчасности с распознаванием геометрических фигур и текста?

Ilia
13.06.2018
07:27:56
Есть, подожди только

yuri
13.06.2018
07:32:08
Народ, есть ли у кого опыт работы с OpenCV, вчасности с распознаванием геометрических фигур и текста?
Есть, но это было давно и неправда. Классификаторы, которые идут с либой сами по себе не очень. Лица распознают хорошо (самое востребованное), а вот кошек уже почти не распознают. С геометрическими фигурами и текстом видимо будет еще хуже. Хотя можно погуглить готовые классификторы. А если желаешь сам натренировать классификатор, то сначала прикинь сколько футажа ты сможешь набрать для тренировки — и для более-менее какого-то результата умножь это количество на 100.
Для автомобильных госномеров готовые классификаторы есть.

Google


Aleksandr
13.06.2018
08:58:27
привет. что-то у меня затуп, есть код:
struct ABC{};
void foo(ABC && abc)
{
ABC & tmp = abc; // затуп
}
int main()
{
ABC abc;
foo(std::move(abc));
}
я не очень понимаю, какое правило используется отсюда:
https://en.cppreference.com/w/cpp/language/reference_initialization
Внутри foo() выражение 'abc' имеет тип ABC && и категория glvalue
tmp - lvalue reference (не конст). значит отбрасываем все правила кроме:
T & ref = object;
1) If 'object' is an lvalue expression, and its type is T or derived from T, and is equally or less cv-qualified, then the reference is bound to the object identified by the lvalue or to its base class subobject.
object у нас действительно lvalue expression, но тип-то у него не T, а T&&, значит, правило не подходит?
2) Otherwise, if the type of object is not same or derived from T, and object has conversion function to an lvalue whose type is either T or derived from T, equally or less cv-qualified, then the reference is bound to the object identified by the lvalue returned by the conversion function (or to its base class subobject).
может, это подходит?


Igor
13.06.2018
09:03:52
привет. что-то у меня затуп, есть код:
struct ABC{};
void foo(ABC && abc)
{
ABC & tmp = abc; // затуп
}
int main()
{
ABC abc;
foo(std::move(abc));
}
я не очень понимаю, какое правило используется отсюда:
https://en.cppreference.com/w/cpp/language/reference_initialization
Внутри foo() выражение 'abc' имеет тип ABC && и категория glvalue
tmp - lvalue reference (не конст). значит отбрасываем все правила кроме:
T & ref = object;
1) If 'object' is an lvalue expression, and its type is T or derived from T, and is equally or less cv-qualified, then the reference is bound to the object identified by the lvalue or to its base class subobject.
object у нас действительно lvalue expression, но тип-то у него не T, а T&&, значит, правило не подходит?
2) Otherwise, if the type of object is not same or derived from T, and object has conversion function to an lvalue whose type is either T or derived from T, equally or less cv-qualified, then the reference is bound to the object identified by the lvalue returned by the conversion function (or to its base class subobject).
может, это подходит?
abc внутри foo это lvalue а не xvalue.


Aleksandr
13.06.2018
09:09:20
да, согласен, категория у 'abc' lvalue, не glvalue. но всё остальное всё равно в силе.
The following expressions are lvalue expressions:
* the name of a variable, a function, or a data member, regardless of type, such as std::cin or std::endl. Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression;
т.е. тип rvalue reference, категория lvalue
а, или тут разница в типе выражения и типе объекта? т.е. у выражения abc тип ABC &&, но тип объекта ABC, и поэтому используем первое правило?


Igor
13.06.2018
09:26:29
да, согласен, категория у 'abc' lvalue, не glvalue. но всё остальное всё равно в силе.
The following expressions are lvalue expressions:
* the name of a variable, a function, or a data member, regardless of type, such as std::cin or std::endl. Even if the variable's type is rvalue reference, the expression consisting of its name is an lvalue expression;
т.е. тип rvalue reference, категория lvalue
Да, у инициализатора тип ABC и lvalue. Lvalue ссылка биндится к lvalue без проблем :) Остальные правила описаны в стандарте в dcl.init.ref, на cppreference выжимка.

Dmitry
13.06.2018
10:14:22

yuri
13.06.2018
10:16:09

Dmitry
13.06.2018
10:23:51
Спасибо, посмотрим

Aidar
13.06.2018
10:26:52
Ну дорожные знаки очевидно легче чем кошек

yuri
13.06.2018
10:27:44
надо уточнить, может быть по моей ссылке американские знаки

Аттрибутивно-ассоциативный ряд
13.06.2018
12:28:06
А где можно посмотреть статус пропозала и решения комитета?
Конкретно инетерсует P0538R0 A Qualified Replacement for #pragma once

Ilia
13.06.2018
12:40:14
Принимайте тёпленького

Google

Ilia
13.06.2018
12:40:15
Товарищи, вопрос есть. У меня ОС linux, какая-то сборка debian. Она крутится на контроллере, (проц armv7). У контроллера есть ком-порт. В ком-порт некоторый софт (софт производителя) пишет запросы и читает ответы от внешних устройств.
Моя задача: в свою программу на с++ заполучить данные, которые принимает и передаёт программа.
Засада в том, что я не знаю, как можно посмотреть то, что программа пишет в порт.
Можно использовать сторонний софт, типа slsniff, но вот только он не подходит, поскольку мне нужно получить эти данные самостоятельно. Если slsniff как-то это делает, значит и я как-то могу?
Может кто-то в курсе, как можно посмотретью ВСЮ движуху на ком-порте?
Имхо надо брать опенсорсную либо по работе с ком портом и там смотреть как сделано


Vitaly
13.06.2018
12:43:09
Товарищи, вопрос есть. У меня ОС linux, какая-то сборка debian. Она крутится на контроллере, (проц armv7). У контроллера есть ком-порт. В ком-порт некоторый софт (софт производителя) пишет запросы и читает ответы от внешних устройств.
Моя задача: в свою программу на с++ заполучить данные, которые принимает и передаёт программа.
Засада в том, что я не знаю, как можно посмотреть то, что программа пишет в порт.
Можно использовать сторонний софт, типа slsniff, но вот только он не подходит, поскольку мне нужно получить эти данные самостоятельно. Если slsniff как-то это делает, значит и я как-то могу?
Может кто-то в курсе, как можно посмотретью ВСЮ движуху на ком-порте?
stty -f /dev/ttyS0 -crtscts -cdtrdsr, где /dev/ttyS0 - первый COM порт.
Разумеется нужно сначала почитать man stty, чтобы выставить правильную скорость порта.


Ilia
13.06.2018
12:45:12
Товарищи, вопрос есть. У меня ОС linux, какая-то сборка debian. Она крутится на контроллере, (проц armv7). У контроллера есть ком-порт. В ком-порт некоторый софт (софт производителя) пишет запросы и читает ответы от внешних устройств.
Моя задача: в свою программу на с++ заполучить данные, которые принимает и передаёт программа.
Засада в том, что я не знаю, как можно посмотреть то, что программа пишет в порт.
Можно использовать сторонний софт, типа slsniff, но вот только он не подходит, поскольку мне нужно получить эти данные самостоятельно. Если slsniff как-то это делает, значит и я как-то могу?
Может кто-то в курсе, как можно посмотретью ВСЮ движуху на ком-порте?
Ну а я вот могу представить, как потом этот бинарныый поток данных тебе парсить будет классно!

Dmitry
13.06.2018
12:45:47
там модбас, там легко парсить

Ilia
13.06.2018
12:50:43
Ну, гляди...

Aleksandr
13.06.2018
12:54:14

Dmitry
13.06.2018
12:55:20

Vitaly
13.06.2018
12:56:32

Dmitry
13.06.2018
12:56:45
скорость порта мне известна
Однако, ввод команды ничего не даёт, совсем.
stty -F /dev/rs485 115200 -crtscts

Vitaly
13.06.2018
12:59:00

Dmitry
13.06.2018
12:59:20
аккаунт? в смысле юзер? но я ведь под рутом

Vitaly
13.06.2018
13:00:26

Dmitry
13.06.2018
13:03:25
stty -F /dev/rs485
выводит разную <undef> фигню .. кажется, это страннно. Но скорость считывает

Igor
13.06.2018
13:03:50

Юра Незнанов
13.06.2018
13:04:52
Всем привет. Дайте пожалуйста совет. Как лучше на вирус-тотал послать файлик через с++? курлом? Чем легче всего получить и распарсить ответ?

Alex Фэils?︙
13.06.2018
13:06:09

Aidar
13.06.2018
13:06:09

Google

Stanislav
13.06.2018
13:06:12

Юра Незнанов
13.06.2018
13:07:03
ну емае, там в апи примерах все есть, даже с++ не нужен
curl -v -F 'file=@/path/to/file' -F \
apikey=${VT_API_KEY} https://www.virustotal.com/vtapi/v2/file/scan
curl -v --request POST \
--url 'https://www.virustotal.com/vtapi/v2/file/rescan' \
-d apikey=${VT_API_KEY} \
-d 'resource=7657fcb7d772448a6d8504e4b20168b8'
curl -v --request POST \
--url 'https://www.virustotal.com/vtapi/v2/file/report' \
-d apikey=${VT_API_KEY} \
-d 'resource=7657fcb7d772448a6d8504e4b20168b8'
вот что тут есть

Dmitry
13.06.2018
13:07:12

Stanislav
13.06.2018
13:07:27

Aleksandr
13.06.2018
13:07:41

Vhäldemar
13.06.2018
13:08:35
и потом парсит

Aidar
13.06.2018
13:08:54
Вроде чтобы понять про && достаточно понять зачем там STD::forward

Dmitry
13.06.2018
13:09:36

Igor
13.06.2018
13:09:37

Aleksandr
13.06.2018
13:12:53
в любом случае, я уже разобрался, спасибо)

Igor
13.06.2018
13:13:23

Aleksandr
13.06.2018
13:21:00

Dmitry
13.06.2018
13:23:07

Igor
13.06.2018
13:23:12


Aleksandr
13.06.2018
13:30:51
Lifetime extension работает только для prvalue. С чем не согласны? :)
xvalue - это же что-то, что обладает свойствами и rvalue и glvalue.
An rvalue may be used to initialize an rvalue reference, in which case the lifetime of the object identified by the rvalue is extended until the scope of the reference ends.
как я вижу проблему с T && foo = std::move(T{});
дело не в том, что move возвращает xvalue и у него не продлевается жизнь, а дело в том, что жизнь продлится аргументу move только до конца выражения, в котором move фигурирует (потому что move - функция)
a temporary bound to a reference parameter in a function call exists until the end of the full expression containing that function call: if the function returns a reference, which outlives the full expression, it becomes a dangling reference.
Т.е. да, результат один, жизнь не продлевается, но объяснения разные. это только вопрос восприятия

Vitaly
13.06.2018
13:31:54

Aleksandr
13.06.2018
13:38:15
вот например. возьмём выражение
XXX && xxx = static_cast<XXX &&> ( XXX{});
static_cast возвращает xvalue тут, но static_cast не функция, поэтому тут жизнь продлевается (проверял на clang 4.0)
надо бы остальные компиляторы глянуть

Google

Aleksandr
13.06.2018
13:39:58
может тут, конечно, UB, я просто его не вижу и компилятор просто делает так как хочет.

Игорь
13.06.2018
13:40:07
Можно здесь пожаловаться на вертску сайта с примером?

Dmitry
13.06.2018
13:41:56

Noname
13.06.2018
13:57:02
Здасте. подскажите, может кто знает что нужно сделать, линкую библиотеку в gcc, а он мне пишет вот это
/usr/bin/ld: skipping incompatible /home/parl/5UX/libOux.so when searching for -lOux

Max
13.06.2018
14:03:39
дай выхлоп file /home/parl/5UX/libOux.so .
скорее всего, не совпадает архитектура либы и бинарника, к которому линкуешь.

Noname
13.06.2018
14:08:49
может быть это из-за того что либа под 32 бита а у меня 64?

Max
13.06.2018
14:09:05

Noname
13.06.2018
14:13:05

Valentin
13.06.2018
14:36:19
Возможно это в этот чат ближе, хз.
Вообщем, вот такой код:
https://hastebin.com/mayutivivi.cpp
ипользую вот так:
static std::unordered_map<std::string, std::function< std::unique_ptr <Command>() > > parser =
{
AddCommand(CIPCLOSE),
AddCommand(CIPSEND),
AddCommand(GMR),
AddCommand(OK)
};
Выдает вот такую пачку ошибок:
Что может быть:?
На десктопе собирается без проблем, на Visual Micro компиляторе не билдится.

Group Butler [beta]
13.06.2018
14:36:20
Valentin kicked for flood!

Igor
13.06.2018
14:37:40


Valentin
13.06.2018
15:17:41
Мини апдейт. проверил на вандбоксе- под Gcc не собирается. Проверил в вижаке на MSVC - собирается.

Google

Valentin
13.06.2018
15:17:46
Кто из них прав:?

Alex Фэils?︙
13.06.2018
15:19:00
А макрос как сам выглядит?

Valentin
13.06.2018
15:28:40
https://wandbox.org/permlink/icouutkZLIts4Gvj
Вопрос решился
#define AddCommand(string)\
{ "AT+"#string, \
[](){ \
return makeReturn< AT_##string>(); \
} \
}спасибо @anatolijs

Matwey
13.06.2018
15:32:29
Кто управляет модемом в моем чати? >_>
<_<

Alex Фэils?︙
13.06.2018
15:39:07
Только строчки уехали

Dmitry
13.06.2018
15:48:59
У меня есть вопрос. Есть блютуз донгл и блютуз клавиатура. Нужно из сишной программы вычитывать нажатия кнопок. Из окружения линукс и libbluetooth. Кто может помочь разобраться как это сделать?

Alex Фэils?︙
13.06.2018
15:53:06
Надо копать в сторону Bluetooth HID-профилей

Vitaly
13.06.2018
16:02:42