INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Problem Image from OpenCV to LabView



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

25.02.2016, 13:52
Beitrag #1

Xeno1987 Offline
LVF-Neueinsteiger


Beiträge: 1
Registriert seit: Feb 2016

2013
2015
DE



Problem Image from OpenCV to LabView
Hello,

I think that there is a memory alloc problem, hope you can help me.

Code:
#include <windows.h>
#include <extcode.h>
#include <iostream>
#include <stdio.h>
#include "opencv2/core.hpp"
#include "opencv2/core/utility.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"

using namespace cv;
using namespace std;

// --- Dll entry point ---
BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    UNREFERENCED_PARAMETER(hModule);
    UNREFERENCED_PARAMETER(lpReserved);
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}


#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */


__declspec(dllexport) INT myDoSomething(short* M, short* N, short* image, int SizeX, int SizeY, short* imgOut){

    // Alloc Memory
    Mat imgIn(SizeX, SizeY, CV_16S, &image[0]);
    Mat imOut(SizeX, SizeY, CV_16S, &imgOut[0]);
    
    
    // Clone Source Image
    
    imOut = imgIn.clone();
    
    
    // Get size for DFT
    *M = getOptimalDFTSize(imgIn.rows);
    *N = getOptimalDFTSize(imgIn.cols);
return 0;
}



#ifdef __cplusplus
}
#endif  /* __cplusplus */


VI Module:

http://postimg.org/image/awk7zj8yb
http://postimg.org/image/riz35ukux
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.03.2016, 14:12
Beitrag #2

Freddy Offline
Oldtimer
****


Beiträge: 729
Registriert seit: Aug 2008

2019, 2020, 2021
1996
DE

76275
Deutschland
RE: Problem Image from OpenCV to LabView
In der Community von NI wurde diese Frage gestellt:

Create a DLL to Read an Image Using OpenCV

Als Antwort kam der Link:

Community NI

Vielleicht hilft es Dir weiter.

Gruß
Freddy

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.03.2016, 13:58
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Problem Image from OpenCV to LabView
(25.02.2016 13:52 )Xeno1987 schrieb:  Hello,

I think that there is a memory alloc problem, hope you can help me.

__declspec(dllexport) INT myDoSomething(short* M, short* N, short* image, int SizeX, int SizeY, short* imgOut){

// Alloc Memory
Mat imgIn(SizeX, SizeY, CV_16S, &image[0]);
Mat imOut(SizeX, SizeY, CV_16S, &imgOut[0]);


// Clone Source Image

imOut = imgIn.clone();

// Get size for DFT
*M = getOptimalDFTSize(imgIn.rows);
*N = getOptimalDFTSize(imgIn.cols);
return 0;
}

Natürlich! Die rot angemerkte Linie kann niemals funktionieren. Das Funktionsinterface ist C, nicht C++ und deshalb kannst Du auch keine C++ automatic pointers verwenden wie das neuere Versionen von OpenCV unterstützen.

Du musst in LabVIEW sicher stellen dass der Buffer für imgOut alloziert wird (wenn es ein IMAQ image ist musst Du den Datentyp und die Höhe und Breite setzen und dann den Pointer auf das Image übergeben. Im C code darfst Du nicht einen neuen Speicher allozieren, was img.clone() macht, sondern musst Du die Pixels korrekt in diesen Buffer kopieren.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  LabView & OpenCV gottfried 0 4.452 19.01.2019 16:59
Letzter Beitrag: gottfried
  IVIsion / OpenCV gottfried 2 5.494 30.04.2013 10:32
Letzter Beitrag: jg
  Performance NI Vision vs OpenCV wolfmichael 5 9.460 24.08.2012 16:39
Letzter Beitrag: b.p
  get image by name, dispose image by name, list of active images gottfried 1 5.971 16.04.2012 13:30
Letzter Beitrag: b.p
  Image - FFT - view Radius & Phase - back 2 Image gottfried 1 5.992 05.07.2010 07:17
Letzter Beitrag: kaiman
  Problem mit image display Emanuel 5 5.812 29.12.2009 18:59
Letzter Beitrag: ImExPorty

Gehe zu: