图像处理入门实践之图像切割以及保存

1,实验目标

图像切割以及将切割好的图像显示以及保存。

2,参考代码

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(){

    Mat img = imread("/Users/macbookpro/CLionProjects/svm_people_distinguish /img_save/piano.jpeg",-1);
    /*
	第一个参数是图片的绝对地址
	第二个参数表示图片读入的方式(flags可以缺省,缺省时flags=1,表示以彩色图片方式读入图片)
	flags>0时表示以彩色方式读入图片
	flags=0时表示以灰度图方式读入图片
	flags<0时表示以图片的本来的格式读入图片
    */

    imshow("123", img);    //“123”是显示框的名字
    int a = waitKey(10000);     //通过整型变量a获取waitKey函数的返回值
    cout << a << endl;

    /*
    waitKey(x)  表示等x毫秒,在这期间如果有按键按下,则返回按键的ascii码,等待结束则会返回-1.
    如果x=0,那么无限等待下去,直到有按键按下
    !!!另外,在imshow之后如果没有waitKey语句则不会正常显示图像。即imshow不会生效!!!
    */
    destroyAllWindows();   //销毁窗口

    Rect rect(400,400,300,300);   //创建一个Rect框,属于cv中的类,四个参数代表x,y,width,height
    //x,y代表切割框的左上角点坐标,width,height分别代表矩形窗口的宽和高
    Mat image_cut = Mat(img, rect);      //从img中按照rect进行切割,此时修改image_cut时image中对应部分也会修改,因此需要copy
    Mat image_copy = image_cut.clone();   //clone函数创建新的图片
    imwrite( "/Users/macbookpro/CLionProjects/svm_people_distinguish /img_save/pic2.bmp", image_copy);   //保存mat格式的图片成jpg格式,或者png,bmp格式,文件大小依次增大
    imshow("456",image_copy);
    waitKey();
    
    return 0;
}

附录:(CMakeList.txt)

cmake_minimum_required(VERSION 3.13)
project(svm_people_distinguish_)

set(CMAKE_CXX_STANDARD 14)

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )

add_executable(Crop_Imge test/crop_imge.cpp)
target_link_libraries( Crop_Imge ${OpenCV_LIBS} )

add_executable(svm_people_distinguish_ main.cpp)

 

已标记关键词 清除标记
第1章 Visual C++与数字图像处理 1 1.1 数字图像处理概述 2 1.1.1 图像与数字图像 2 1.1.2 数字图像处理研究的内容 4 1.1.3 数字图像处理的应用 6 1.2 Visual C++概述 8 1.2.1 C++语言简介 8 1.2.2 Visual C++简介 16 1.2.3 Visual C++ 2005 集成开发环境 19 1.3 在Visual C++中处理数字图像 22 1.3.1 位图和调色板 22 1.3.2 图形设备接口 23 1.3.3 OpenCV 26 1.4 本章小结 26 第2章 Visual C++ 2005基础知识 27 2.1 利用向导生成应用程序 28 2.1.1 创建新项目 28 2.1.2 编译并运行工程 35 2.2 添加资源 36 2.2.1 新建资源 36 2.2.2 导入资源 38 2.3 MFC编程基础 38 2.3.1 MFC应用程序框架 39 2.3.2 Windows消息和事件驱动 40 2.3.3 常用消息 41 2.3.4 MFC的消息映射 42 2.4 消息与事件响应 44 2.4.1 添加类 44 2.4.2 添加类成员 45 2.4.3 添加消息响应 46 2.4.4 添加事件 47 2.4.5 添加函数重写 48 2.4.6 手动添加消息响应 50 2.5 对话框的使用 51 2.5.1 创建并编辑对话框资源 51 2.5.2 模式对话框和无模式对话框 55 2.5.3 消息对话框 57 2.5.4 共用对话框 59 2.6 常用控件的使用 64 2.6.1 按钮类控件 64 2.6.2 文本框 67 2.6.3 列表框 70 2.6.4 组合框 74 2.6.5 静态类控件 76 2.7 菜单栏和工具栏 77 2.7.1 菜单栏的使用 77 2.7.2 工具栏的使用 83 2.8 本章实例:简单的画图程序 87 2.8.1 实例预览 88 2.8.2 概要设计 88 2.8.3 完成实例编码 91 2.9 本章小结 98 第3章 认识色彩空间 99 3.1 颜色的基本知识 100 3.1.1 颜色的定义 100 3.1.2 颜色的属性 102 3.2 常用色彩空间简介 103 3.2.1 RGB颜色空间 103 3.2.2 CMY/CMYK颜色空间 105 3.2.3 HSV/HSB(HSI/HCI/HSL) 颜色空间 106 3.2.4 CIE系列颜色空间 109 3.2.5 YUV/YCbCr颜色空间 111 3.3 色彩空间的转换方法 112 3.3.1 RGB转换到HSV的方法 113 3.3.2 RGB转换到HSI的方法 114 3.3.3 RGB转换到YUV的方法 115 3.3.4 RGB转换到YCbCr的方法 116 3.4 本章实例:Photoshop 色彩编辑器 118 3.4.1 需求分析 118 3.4.2 概要设计 119 3.4.3 完成实例编码 121 3.5 本章小结 130 第4章 图像文件格式 131 4.1 图像文件概述 132 4.1.1 图像文件 132 4.1.2 图像文件的一般结构 132 4.1.3 图像文件的常用参数 133 4.2 BMP文件格式 134 4.2.1 文件结构 135 4.2.2 文件头和信息头 135 4.2.3 主要参数 136 4.3 GIF文件格式 136 4.3.1 GIF格式简介 137 4.3.2 GIF文件结构 137 4.3.3 GIF文件块的结构 138 4.4 PNG文件格式 142 4.4.1 PNG格式简介 142 4.4.2 PNG文件结构 143 4.4.3 PNG中的关键数据块 144 4.5 图像的压缩编码 146 4.5.1 Huffman编码 147 4.5.2 LZW编码 148 4.5.3 行程编码 151 4.5.4 离散余弦变换 151 4.6 JPEG文件格式 153 4.6.1 JPEG文件概述 153 4.6.2 JPEG编码/解码的理论基础 153 4.6.3 JPEG文件的格式 160 4.7 本章实例:JPEG解码程序 163 4.7.1 概要设计 163 4.7.2 完成实例编码 169 4.8 本章小结 188 第5章 使用DIB处理数字图像 189 5.1 设备相关位图和设备 无关位图 190 5.1.1 设备相关位图(DDB) 190 5.1.2 设备无关位图(DIB) 190 5.2 CBitmap类 190 5.2.1 创建DDB 191 5.2.2 CBitmap中的成员函数 193 5.2.3 应用DDB显示图像 193 5.2.4 应用DDB显示大图像 195 5.3 进一步了解DIB
相关推荐
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页