opencv 交叉编译测试

1.源码test.cpp

#include 
#include 
#include 
#include 
#include 
using namespace cv;
using namespace std;
int main (int argc, char **argv)
{
    Mat image, image_gray;
    image = imread(argv[1], cv::IMREAD_COLOR);
    if (argc != 2 || !image.data) {
        cout << "No image data\n";
        return -1;
    }

    cvtColor(image, image_gray, CV_RGB2GRAY);
    namedWindow("image", cv::WINDOW_AUTOSIZE);
    namedWindow("image gray", cv::WINDOW_AUTOSIZE);

    imshow("image", image);
    imshow("image gray", image_gray);

    waitKey(0);
    return 0;
}

2.Makefile  一定注意Makefile 的TAB规则

win下

CC = g++
# 可运行文件
TARGET = test
# C文件
SRCS = test.cpp
# 目标文件
OBJS = $(SRCS:.cpp=.o)
# 库文件
LIBS    = -L/usr/lib/x86_64-linux-gnu
CPPFLAGS    =  -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lpthread -lrt
DLIBS = -lopencv_core -lopencv_imgproc -lopencv_highgui
# 链接为可运行文件
$(TARGET):$(OBJS)
	$(CC) -std=c++11 -o $@ $^ ${LIBS} ${CPPFLAGS}
clean:
	rm -rf $(TARGET) $(OBJS)
# 编译规则 $@代表目标文件 $< 代表第一个依赖文件
%.o:%.cpp
	$(CC) -o $@ -c $<

开发板下

CC  = mips64el-linux-g++
LFLAGS  = -Wno-psabi -std=c++11
LIBS    = -L/opt/Qt_mips5.12.11/lib -L/home/ubuntu/Downloads/opencv/cv_install/lib
CPPFLAGS    = -lQt5Widgets -lQt5Gui -lQt5Core -lQt5Test -lpthread -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lpthread -lrt
LINC     += -I/home/ubuntu/Downloads/opencv/cv_install/include/opencv4
objs :=test
out :=test

$(out):$(objs).cpp
	${CC} ${LFLAGS} ${LIBS} ${LINC} ${CPPFLAGS} -o $@ $^

clean:
	rm $(out)

3.编译,开发板执行,需要同目录下放一张图片即可

./test 123.jpg

你可能感兴趣的:(OpenCV,QT)