-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
System information (version)
OpenCV => 4.5.0
Operating System / Platform => Mac OS X 10.15.6
Environment => Jupyter Notebook C++14
Python => 3.8.6
Matplotlib version 3.3.2
Detailed description
From "Add support for imshow() #79", I downloaded the matplotlibcpp.h
and try to run imshow.cpp
(downloaded from alexdewar/matplotlib-cpp) with jupyter notebook. However, I still get the following error:
input_line_10:13:6: error: no member named 'imshow' in namespace 'matplotlibcpp'
plt::imshow(zptr, nrows, ncols, colors);
~~~~~^
My jupyter file is:
#define __USE_MATH_DEFINES
#include <cmath>
#include "includeLibraries.h"
#include "matplotlibcpp.h"
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <string>
#include <fstream>
#include "xeus/xjson.hpp"
#include "xtl/xbase64.hpp"
#include "numpy/arrayobject.h"
#include <Eigen/Dense>
using namespace std;
namespace plt = matplotlibcpp;
// Prepare data
int ncols = 500, nrows = 300;
std::vector<float> z(ncols * nrows);
for (int j=0; j<nrows; ++j) {
for (int i=0; i<ncols; ++i) {
z.at(ncols * j + i) = std::sin(std::hypot(i - ncols/2, j - nrows/2));
}
}
const float* zptr = &(z[0]);
const int colors = 1;
plt::title("My matrix");
plt::imshow(zptr, nrows, ncols, colors);
// Show plots
plt::save("imshow.png");
plt::pause(5);
plt::close();
My includeLibraries.h
is:
#pragma cling add_library_path("/usr/local/Cellar/opencv/4.5.0/lib/")
#pragma cling add_include_path("/usr/local/Cellar/opencv/4.5.0/include/opencv4/")
#pragma cling load("/usr/local/Cellar/dlib/19.21/lib/libdlib.19.21.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_datasets.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_aruco.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_bgsegm.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_bioinspired.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_calib3d.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_ccalib.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_core.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_dnn_objdetect.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_dnn.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_dpm.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_face.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_features2d.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_flann.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_freetype.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_fuzzy.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_gapi.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_hfs.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_highgui.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_img_hash.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_imgcodecs.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_imgproc.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_line_descriptor.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_ml.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_objdetect.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_optflow.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_phase_unwrapping.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_photo.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_plot.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_quality.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_reg.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_rgbd.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_saliency.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_sfm.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_shape.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_stereo.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_stitching.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_structured_light.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_superres.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_surface_matching.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_text.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_tracking.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_video.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_videoio.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_videostab.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_xfeatures2d.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_ximgproc.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_xobjdetect.4.5.0.dylib")
#pragma cling load("/usr/local/Cellar/opencv/4.5.0/lib/libopencv_xphoto.4.5.0.dylib")
#pragma cling add_include_path("/usr/local/Cellar/python@3.8/3.8.6/Frameworks/Python.framework/Versions/3.8/include/python3.8")
#pragma cling add_include_path("/usr/local/Cellar/eigen/3.3.8_1/include/eigen3/") // include eigen3
#pragma cling add_include_path("/usr/local/Cellar/numpy/1.19.2/lib/python3.8/site-packages/numpy/core/include") // By default Matplotlib for C++ uses Numpy arrays. This requires the above header file.
#pragma cling add_library_path("/usr/local/Cellar/python@3.8/3.8.6/Frameworks/Python.framework/Versions/3.8/lib")
#pragma cling load("/usr/local/Cellar/python@3.8/3.8.6/Frameworks/Python.framework/Versions/3.8/lib/libpython3.8.dylib")
#define WITHOUT_NUMPY 1
Other matplotlibcpp functions such as plt::plot
and plt::quiver
work, but plt::imshow
. I appreciate if any experts can advise me how to solve this issue, thanks a lot!!
Metadata
Metadata
Assignees
Labels
No labels