0.本文為測驗cv::waitKey()的觸發條件
1.程式準備
mkdir -p opencv_test/src
cv opencv_test/src
catkin_create_pkg commandlineparse std_msgs rospy roscpp cv_bridge
# meng @ meng in ~/my_learning/opencv_test [16:13:15]
$ tree
.
└── src
├── CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
└── commandlineparse
├── CMakeLists.txt
├── include
│ └── commandlineparse
├── package.xml
└── src
├── commandlineparse_node.cpp
└── tulip.jpg
5 directories, 5 files
如上所述,添加檔案commandlineparse_node.cpp(上面倒數第三行),修改CMakeLists.txt(上面commandlineparse檔案夾內的)
commandlineparse_node.cpp,main函式內第二行為本地圖片的絕對路徑
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/core.hpp"
#include "opencv2/imgcodecs.hpp"
#include "iostream"
#include "ros/ros.h"
using namespace cv;
using namespace std;
int main(int argc,char** argv){
Mat src;
src=imread("/home/meng/my_learning/opencv/opencv_ws1/src/commandLineParse/src/tulip.jpg",1);
namedWindow("my_window",WINDOW_NORMAL);
imshow("my_window",src);
waitKey(0);
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 3.0.2)
project(commandlineparse)
find_package(catkin REQUIRED COMPONENTS
cv_bridge
roscpp
rospy
std_msgs
)
find_package(OpenCV REQUIRED)
catkin_package()
include_directories(
${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} )
add_executable(commandlineparse_node src/commandlineparse_node.cpp)
target_link_libraries(commandlineparse_node
${catkin_LIBRARIES} ${OpenCV_LIBS} )
2.程式運行
回到opencv_test目錄下,打開終端,運行效果如下圖所示
catkin_make
source devel/setup.zsh
######或source devel/setup.bash
rosrun commandlineparse commandlineparse_node

此時將滑鼠放置于打開的視窗圖片上,點擊滑鼠左鍵,按下鍵盤上的"ESC"鍵即可觸發"cv::waitKey()"函式,使程式結束
附圖片,來源與網路,僅供學習使用啦

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293266.html
標籤:其他
