对OpenCV使用的日常总结
可对目标图像进行任意分块
首先创建一个文件夹,在里面进行以下操作
#include
#include
#include
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版本
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})
前
后