#include <iostream>
#include <opencv2/core/core.hpp> //定义了图像数据库结构的核心库
#include <opencv2/highgui/highgui.hpp> //包含了所有图形接口函数
using namespace cv;//在opencv的c++ API,所有类和函数都在命名空间cv中定义
using namespace std;
int main() {
cv::Mat image;//cv::使得opencv的类和函数更容易识别
cout<<"This image is "<<image.rows<<"*"<<image.cols<<endl;
image = imread("/home/yhj/图片/1.png");
if(image.empty())
{
cout<<"error!"<<endl;
return 0;
}
cv::namedWindow("original image");//定义显示窗口,其实有没有没有影响
cv::imshow("original image",image);//显示
cv::Mat result;//创建空图像,作为输出
cv::flip(image,result,-8);//图像翻转,正数表示水平,0表示垂直,负数表示水平和垂直
cv::namedWindow("output image");
cv::imshow("output image",result);
image=cv::imread("/home/yhj/图片/1.png",CV_LOAD_IMAGE_GRAYSCALE);//以灰度图像读入
cv::imshow("gray image",image);
cout<<"channels: "<<image.channels()<<endl;
image=cv::imread("/home/yhj/图片/1.png",CV_LOAD_IMAGE_COLOR);//以彩色图像读入
cv::imshow("color image",image);
cout<<"channels: "<<image.channels()<<endl;
//因为是控制台窗口,会在main函数结束时关闭,额外增加一个highgui函数 ,需要键入数值才能结束程序
//0表示永远地等待按键结束,正数表示等待指定的毫秒数
waitKey(0);
}
cmakelists.txt:
cmake_minimum_required(VERSION 3.13)
project(1_1)
set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(1_1 main.cpp)
target_link_libraries(1_1 ${OpenCV_LIBS})