Jump to content
Compvision.ru
Apostolkkk

Не подгружается библиотека Highgui в OpenCV в QT

Recommended Posts

Создал проект на Qt под OpenCV тестовый после подключения библиотеки, но проект не собирается и пишет ошибку при компиляции "undefined reference to 'cvloadimage' ", в *pro файле прописал следующие:
 

Код
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = untitled2
TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv2\
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv2\imgproc
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv2\highgui
LIBS+= -L\C:\OpenCV\opencv-master\build\lib\libopencv_highgui_pch_dephelp.a
LIBS+= -L\C:\OpenCV\opencv-master\build\lib\libopencv_highgui320.dll.a
LIBS+= -L\C:\OpenCV\opencv-master\build\lib\libopencv_imgproc320.dll.a

SOURCES +=

Исходник в main:
 

C++ (Qt)Выделить код
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
#include "mainwindow.h"
#include <QApplication>
#include <opencv/cv.h>
#include <cvv.hpp>
#include <stdlib.h>
#include <stdio.h>
#include <imgproc.hpp>
#include <highgui.hpp>
#include <iostream>
using namespace cv;
using namespace std;
IplImage* image = 0;
 
int main(int argc, char *argv[])
{
    const char* filename = argc == 2 ? argv[1] : "1calib.png";
            // получаем картинку
            image = cvLoadImage(filename,1);
    QApplication a(argc, argv);
    MainWindow w;
 
 
    IplImage *img = cvLoadImage("1calib.png");
    cvNamedWindow("Hello, QT! From OpenCV!");
    cvShowImage("Hello, QT! From OpenCV!", img);
    cvWaitKey();
    w.show();
 
    return a.exec();
}

После прописки pro файла qmake запускал, но компилятор все равно не видит функцию.

Помогите разобраться с этой проблемой, а то я еще не начал даже разбираться с OpenCv а уже затык, на ровном месте.

Вот не много подправил pro файл ошибка та же


INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv
INCLUDEPATH+=C:\OpenCV\opencv-master\build\install\include\opencv2\
LIBS+= C:\OpenCV\opencv-master\build\lib\libopencv_core320.dll.a
LIBS+= C:\OpenCV\opencv-master\build\lib\libopencv_highgui_pch_dephelp.a
LIBS+= C:\OpenCV\opencv-master\build\lib\libopencv_highgui320.dll.a
LIBS+= C:\OpenCV\opencv-master\build\lib\libopencv_imgproc320.dll.a

 

Share this post


Link to post
Share on other sites

Лучше использовать новый интерфейс функций OpenCV (Mat вместо IplImage, cv:: вместо cv, короче c++ ). 

Откройте стандартные примеры (папка samples) там достаточно кода чтобы понять что да как.

А не подключаться может либо из-за того что OpenCV построена без поддержки Qt, либо старые функции уже в другой либе.

Share this post


Link to post
Share on other sites

Построено с поддержкой Qt. А вот в другой Либе это скорее всего. Пока не могу найти в какой. А с Mat тоже пока не получается ошибки ошибки. Буду мучить и искать.

Share this post


Link to post
Share on other sites

Простейший пример:

#include "opencv2/opencv.hpp"
using namespace cv;

int main(int argc, char** argv)
{
	Mat img;
	img=imread("image.png",1);
	imshow("my image",img);
	waitKey();
	return 0;
}

А для вывод на форму посмотрите это: SimpleQTApp.rar

Share this post


Link to post
Share on other sites

пишет на простейший пример

undefined reference to `cv::imread(cv::String const&, int)`

и еще восемь подобных ошибок

указывают все 8, на строчку img=imread("image.png",1)

файл создал с таким именем и поместил в папку проекта

 

Share this post


Link to post
Share on other sites

Добавьте в библиотеки imgcodecs (у меня называется opencv_imgcodecs310.lib ).  Она была добавлена в третьей версии.

Share this post


Link to post
Share on other sites

Сейчас тоже этим занимаюсь. Скорее всего разные версии qt и opencv.

32-х и 64-х битные. Проверьте.

А  КакSimpleQTApp - это для вижал студии?

Скажите как на форму qt выводить окно из opencv?

То есть каким образом вывести изображение на форму?

Можно на пиксмап?

Share this post


Link to post
Share on other sites
1 час назад, Khludenkov сказал:

Скажите как на форму qt выводить окно из opencv?

То есть каким образом вывести изображение на форму?

Можно на пиксмап?

Бросаешь на форму GraphicsView

cv::Mat imagem; // загрузка картинки
img = new QImage((const unsigned char*)(imagem.data), imagem.colsimagem.rowsimagem.stepQImage::Format_RGB888); // Qt image structure
pixmap = new QPixmap(QPixmap::fromImage(*img));		
pPixmapItem = scene->addPixmap(*pixmap);
  • Like 1

Share this post


Link to post
Share on other sites

Спасибо.

А если под размер подогнать надо?

Чем лучше? Средствами opencv resize()? Или в qt своими можно?

Share this post


Link to post
Share on other sites
18 минут назад, Khludenkov сказал:

 

А если под размер подогнать надо? Чем лучше? Средствами opencv resize()? Или в qt своими можно?

Я делал функциями QGraphicsView - fitInView, scale и translate.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×