C/C++

OPencv-nek tényleg hibás néhány függvénye? Vagy én rontok el valamit?

Fórumok

Szaisztok!
Némi nemű számolgatás és átalakítás után a következő kimenetet kapom, az mindegy hogy ez mi, a lényeg hogy van egy cvCartToPolar nevű függvény a link alatti leírás alapján működik. Az intenziás kimenettel nincs is gond, tökéletes:

A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

Viszont a fáziskép az valami okból kifolyólag minden második pontban (ha jól látom mindíg ott ahol x+y páratlan) valami egzotikus értéket ad. Találkoztatok hasonló problémával? Itt a kép:

A képet a Képfeltöltés.hu tárolja. http://www.kepfeltoltes.hu

A másik problémám a fourier transzformációval van. Elvileg egy homogén átlaggal kitöltött háttér esetén (a homogén háttér tuti jó) a függvényt (kis képet amiből ezek készültek) majdnem bárhol lehelyezhetek a háttérben (a nagy szürke képben) az fourier transzformációt ez semmiben nem kellene hogy befojásolja, csak fáziseltolást kellene, hogy eredményezzen (ami látványban annyit jelent hogy a fázishatárok maradnak, csak pl ahol világos most ott sötétebb lesz és viszont), de ha nem középre teszem a képet akkor teljesen értelmezhetetlen fázisképet kapok. Ránézésre hasonlít az iménti fázisképre, csak teljesen helytelen, és még pöttyösebb. Egyedül akkor kapok nem pöttyös, de teljesen hibás fázisképet, amikor a 0,0 pozicióba teszem a mintafüggvényt (kis kép), de akkor totál káosz a fázis.

Előre is köszönöm.

C++ const: szereted, vagy gyűlölöd?

Fórumok

C++ newbie koromban ismertem egy nagyon jó programozót, nevezzük most Zsoltnak.

Azt mondta nekem ez a Zsolt, hogy ő a C++-ban a const kulcsszót szereti a legjobban. Fiatal voltam, hittem neki. Szigorúan mindig odaírom azóta is a a const metódusok mögé a kedvenc kulcsszavunkat, jelezve, hogy ez az eljárás nem változtatja meg objektumunk állapotát.

Aztán jöttek a szopások:
iterator, const_iterator, referenciaszámolt osztályok, map-ek, duplikált const és nem cont metódusok, mutable kulcszó ízléstelen használata.

Rájöttem, hogy enyhén szólva is könnyebb lenne az életem egy olyan C++-szal, amiben nem szerepel a const kulcsszó.

Szerintetek legalább optimalizálásban reálisan hoz valamit, ha már szopjuk a répát miatta?

QDataWidgetMapper - frissítés

Fórumok

Üdv!

Van egy érdekes frissítés problémám a Qt, QDataWidgetMapper osztályával kapcsolatban, hátha van valakinek ötlete hogyan lehetne megoldani, illetve mi a gond.

Van egy QSqlTableModel (ami egy SQL adatbázisból hoz le egy táblázat adatait)
QDataWidgetMapper -el összekötöm a model egyes mezőit, a képernyőn látható widget-ekkel amit majd e felhasználó módosít ha akar.
Ugyan ezen a képernyőn van egy olyan funkció ami azt a rekordot módosítja amit épp lát a felhasználó, de ezt nem a mapperen hanem közvetlenül QSqlQuery-n keresztül teszem, miután ez a kód lefut hívok egy QSqlTableModel select -et hogy frissüljenek az adataim, ami a modelben le is frissíti, de a mapper-en keresztül hozzákötött widget-ekben nem frissül.
Mi lehet az oka / hol hibás az elképzelésem ?

Előre is köszi a segítséget, javaslatot!

Flat file databese-t keresek?

Fórumok

Egy olyan C++-ban való megoldást keresek, amiben tudok tárolni, modosítani, törölni, keresni információkat az előzőleg indexelt fájlokból.
Szöveget, számot, elérési utvonalat, képet tárolnék benne.
Táblák közötti műveletek nem lennének. Sőtt lehet hogy több tábla sem. 1 tábla - 1 fájl megoldást gondoltam.
Fontos hogy kevés dolog kelljen hozzá, tehát nem akarok MySQL-t alkalmazni a feladatra. Ellenben pl. csv-ben tárolni az adatokat kevés lenne (a képek miatt).
Kódlap problémákat is szeretném a minimálisra szorítani.

CHOST beállítás file output alapján

Fórumok

Sziasztok,

Van egy olyan kínom, hogy szeretnék egy toolchain-t fordítani egy eszközhöz, de nem akar összejönni. Van egy binárisom, ami jó, erre a file parancs ezt írja:


mc: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV) dynamically linked (uses shared libs), stripped

Azt tudom, hogy uClibc rendszer, MIPS procival. Amit keresek, az a CHOST (pontosabban CTARGET) erteke.

Opencv. A kép környezet növelése.

Fórumok

Sziasztok a lenti kódrészlet elvileg a beadott komplex tömböt bemásolja egy nagyobb tömbbe úgy hogy a körülötte 0-k lesznek. de ezt a hibaüzenetet kapom:

OpenCV Error: Assertion failed (src.depth() == dst.depth() && src.size() == dst.size()) in cvCopy, file /build/src/OpenCV-2.0.0/src/cxcore/cxcopy.cpp, line 466
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

Ami szerintem nem logikus (vagy én rontok el valamit), mert bemeneti tömb, az ugyanakkora, mint a zerobigpic-ben képezett oldpic_area subrect.

void MainWindow::cvLupeDFT(CvArr * src_arr, CvArr * dst_arr , int x_size, int y_size)
{
CvMat imat, omat;
CvMat *zerobigpic, *oldpic_area;
zerobigpic = cvCreateMat( x_size, y_size, cvGetElemType(src_arr));
cvGetSubRect( zerobigpic, &imat, cvRect(0,0, x_size, y_size));
CvSize new_size = cvSize(x_size,y_size);
CvSize old_size = cvGetSize(src_arr);

zerobigpic=cvCreateMat(new_size.height, new_size.width, cvGetElemType(src_arr));
cvZero(zerobigpic);
oldpic_area=cvGetSubRect(zerobigpic, &omat, cvRect(0,0,old_size.height+1, old_size.width+1));
cvCopy(oldpic_area,src_arr,0);
//cvCopy(zerobigpic,dst_arr,0);

}

error: expected constructor... [MEGOLDVA]

Fórumok

Szerk.:

A működő változat:
(csak hogy ne a hülyeség maradjon itt, htha valakit érdekel a socket)


#include stdlib.h
#include stdio.h
#include string.h
#include signal.h
#include netdb.h
#include sys/prctl.h
#include netinet/in.h
#include arpa/inet.h
#include sys/types.h
#include sys/socket.h

int main(){

int my_socket;
int length;

struct sockaddr_in me;
struct sockaddr_in dest;

char buf[ ]="proba";

my_socket = socket( AF_INET, SOCK_DGRAM, 0 );

me.sin_family = AF_INET;
me.sin_port = htons(12343);
me.sin_addr.s_addr = inet_addr("127.0.0.1");
memset( &(me.sin_zero), '\0', 8 );

dest.sin_family = AF_INET;
dest.sin_port = htons(12344);
dest.sin_addr.s_addr = inet_addr("127.0.0.1");
memset( &( dest.sin_zero), '\0', 8 );

length = sizeof( struct sockaddr_in );
bind( my_socket, (struct sockaddr *)&me, length );

sendto( my_socket, buf, strlen(buf), 0, (struct sockaddr *)&dest, length );

return 0;

}

--------------------------------------

Hello,

újabb kérdésem van.
UDP-s kommunikációt szeretnék készíteni, de nem fordul, még rosszabb, hogy nem tudom miért :)
Egyébként a hiba nem valószínű, hogy kifejezetten az UDP-implementáció miatt van, valószínűleg hiányzik egy header, vagy ilyesmi, de sehogy sem sikerült rájönnöm, hogy mi.

A kód:

#include stdlib.h
#include stdio.h
#include iostream
#include string.h
#include signal.h
#include netdb.h
#include sys/prctl.h
#include netinet/in.h
#include sys/types.h
#include sys/socket.h

using namespace std;

int my_socket;
int length;
struct sockaddr_in me;
struct sockaddr_in dest;

char buf[ ]="proba";

my_socket = socket( AF_INET, SOCK_DGRAM, 0 );

me.sin_family = AF_INET;
me.sin_port = 0;
me.sin_addr = INADDR_ANY;
memset( &(me.sin_zero), '\0', 8 );

dest.sin_family = AF_INET;
dest.sin_port = htons(12344);
dest.sin_addr = inet_addr("127.0.0.1");
memset( &( dest.sin_zero), '\0', 8 );

length = sizeof( struct sockaddr_in );
bind( my_socket, (struct sockaddr *)&me, length );

int main(){
sendto( my_socket, buf, strlen(buf), 0, (struct sockaddr *)&dest, length );
return 0;
}

-----------------
A hibaüzenet:

client2.cpp:21: error: expected constructor, destructor, or type conversion before ‘=’ token
client2.cpp:23: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:24: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:25: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:26: error: expected constructor, destructor, or type conversion before ‘(’ token
client2.cpp:28: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:29: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:30: error: expected constructor, destructor, or type conversion before ‘.’ token
client2.cpp:31: error: expected constructor, destructor, or type conversion before ‘(’ token
client2.cpp:33: error: expected constructor, destructor, or type conversion before ‘=’ token
client2.cpp:34: error: expected constructor, destructor, or type conversion before ‘(’ token

a 21. sor egyébként a my_socket = socket( AF_INET, SOCK_DGRAM, 0 );

----------------

statikus változó törlése [MEGOLDVA]

Fórumok

A következő problémával kapcsolatban szeretnék segítséget kérni:

Nagyon leegyszerűsítve adott a következő szerkezet:


for(...){
   for(...){
     ...
     függvény(...);
     ...
   }
}

void függvény(...){
   ...
   static változó = 0;
   ...
}

Tehát, a függvényben van egy (vagy több) statikus változó, aminek az értékét csak addig szeretném megőrizni, amíg a belső ciklus fut. Amikor a belső ciklus végetér, és a külső ciklus lép egyet, azt szeretném, hogy a statikus változó kvázi újradeklarálódjon újradefiniálódjon, "resetelődjön".
Létezik erre valami egyszerű megoldás?