OpenCV实践篇--图像分割(附代码)

OpenCV实践篇--图像分割(附代码)对 OpenCV 使用的日常总结 一 明确目标 可对目标图像进行任意分块 二 实践环境 Ubuntu 18 04 OpenCV 3 3 CMake 3 16 9 三 代码实现 首先创建一个文件夹 在里面进行以下操作 创建源文件 txfg cpp include iostream include lt iostream

大家好,我是讯享网,很高兴认识大家。

对OpenCV使用的日常总结

一、明确目标

可对目标图像进行任意分块

二、实践环境

  • Ubuntu 18.04
  • OpenCV 3.3
  • CMake 3.16.9

三、代码实现

首先创建一个文件夹,在里面进行以下操作

  • 创建源文件 txfg.cpp
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace std; // 输入分块个数,进行图像分块 void ImageBlock(const cv::Mat& src, int segRow, int seLine) { int segHeight = src.rows / segRow; // 分块高度 int segWidth = src.cols / seLine; // 分块宽度 cv::Mat roiImg; for (int i = 0; i < segRow; ++i) { for (int j = 0; j < seLine; ++j) { cv::Rect rect(j * segWidth, i * segHeight, segWidth, segHeight); src(rect).copyTo(roiImg); std::string str = std::to_string(i) + std::to_string(j); imwrite(str + "_block.png", roiImg); imshow(str, roiImg); } } } int main() { cv::Mat img = cv::imread("../girl.png"); if (img.empty()) { cout << "请确认图像文件名称是否正确" << endl; return -1; } imshow("img", img); cv::waitKey(0); int m = 2; int n = 2; ImageBlock(img, m, n); // 分块 cv::waitKey(0); return 0; } 

讯享网
  • 需要使用CMake工具链,故创建CMakeLists.txt
讯享网#声明要求的cmake版本 cmake_minimum_required(VERSION 2.8) #声明一个cmake工程 project(txfg) #CMake配置C++11编译标准 set(CMAKE_CXX_FLAGS "-std=c++11") #寻找OpenCV库 find_package(OpenCV 3 REQUIRED) #添加头文件 include_directories( ${OpenCV_INCLUDE_DIRS} ) #添加一个可执行程序 add_executable(程序名 源代码文件名) add_executable(txfg txfg.cpp) #链接到库函数(可执行文件 被链接的库函数) target_link_libraries(txfg ${OpenCV_LIBS}) 
  • 编译运行
    创建build 文件夹:mkdir build
    进入build 文件夹: cd /build
    终端输入 :cmake … (预编译)
    终端继续输入:make (编译)
    输入:./txfg
    在这里插入图片描述
    讯享网

四、效果展示

在这里插入图片描述

在这里插入图片描述
大功告成了!!!

小讯
上一篇 2025-02-23 18:16
下一篇 2025-01-12 13:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/27683.html