Funkce pow – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Funkce pow – C / C++ – Fórum – Programujte.comFunkce pow – C / C++ – Fórum – Programujte.com

 

oxidián0
Grafoman
16. 6. 2016   #1
-
0
-

Snažím se zkompilovat jeden program či knihovnu v opencv a narazil jsem tam na chybu

error C2668: 'cv::pow' : ambiguous call to overloaded function

C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(583): could be 'long double pow(long double,int)'

C:\Program Files\Microsoft Visual Studio 10.0\VC\include\math.h(535): or       'float pow(float,int)'

Kód obsahuje toto:

flowMat *= pow(2, finest_scale);


Podle mého názoru existuje funkce cv::pow, ale autor chtěl použít jinou funkci pow nejspíš tuto:

http://www.cplusplus.com/reference/cmath/pow/


ovšem jak mám přepsat tento příkaz aby se to vyjasnilo?

Nahlásit jako SPAM
IP: 78.45.87.–
KIIV
~ Moderátor
+43
God of flame
16. 6. 2016   #2
-
0
-

co zkusit:  pow(2.0f, finest_scale);  nebo  pow((float)2, finest_scale);

Nebo jeste jde taky pomoci funknich pointeru, jak se zda:  ((float(*)(float,int))pow)(2,d);

EDIT: odstraneno co nefacha a pridano explicitni typovani pow

Jo a pokud se ti to mlati s cmath pow, tak doporucuju nedelat blbosti jako  using namespace cv;

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
oxidián0
Grafoman
16. 6. 2016   #3
-
0
-

Hele to není můj kód, jen se snažím to zkompilovat. Mám to tu postnout celé i s licencí?

#include <opencv2/optflow.hpp>
#include <opencv2/video.hpp>
#include <opencv2/imgproc.hpp>
#include "opencv2/core/ocl.hpp"

#include <algorithm>
#include <cmath>

#include "opencv2/imgproc.hpp"

using namespace std;
#define EPS 0.001F

namespace cv
{
namespace optflow
{

bla bla bla ...

void DISOpticalFlowImpl::calc(InputArray I0, InputArray I1, InputOutputArray flow)
{
bla bla bla ...
resize(U, flowMat, flowMat.size());
flowMat *= pow(2, finest_scale);
}

soubor se jmenuje dis_flow.cpp a je to součást projektu opencv_optflow

Nahlásit jako SPAM
IP: 78.45.87.–
oxidián0
Grafoman
16. 6. 2016   #4
-
0
-

Vyzkoušeno a funguje. Díky

Předpokládám že ten jejich pow doplňuje to co není v std či stl a šlo tam o jednoznačné rozlišení typů.

Nahlásit jako SPAM
IP: 78.45.87.–
KIIV
~ Moderátor
+43
God of flame
16. 6. 2016   #5
-
0
-

#4 oxidián
mozna ano, ale standard c++11 ma vsechny ty varianty taky. (jako treba celociselny exponent)

Nahlásit jako SPAM
IP: 212.47.3.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 104 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý