需要使用CMakeLists链接到opencv
draw.cpp
#include<iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
int main()
{
cv::Mat icra2021(cv::Size(850, 490), CV_8UC1, cv::Scalar::all(255));
// 边框
for (int i = 0; i < 21; ++i){
for (int j = 0; j < 850; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int j = 0; j < 21; ++j){
for (int i = 0; i < 490; ++i){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
// 1000 x 200
for (int i = 121; i < 141; ++i){
for (int j = 21; j < 121; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int i = 21; i < 121; ++i){
for (int j = 659; j < 679; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int i = 235; i < 255; ++i){
for (int j = 171; j < 251; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int i = 115; i < 135; ++i){
for (int j = 375; j < 475; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int i = 227; i <= 245; ++i){
for (int j = 425; j <= 425 + i - 227; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
for (int i = 227; i <= 245; ++i){
for (int j = 425 - i + 227; j <= 425; ++j){
icra2021.at<uchar>(i, j) = 0;
icra2021.at<uchar>(490 - i, 850 - j) = 0;
}
}
cv::imshow("icra2021", icra2021);
cv::waitKey(0);
system("pause");
cv::imwrite("icra2021.pgm", icra2021);
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(draw)
set( CMAKE_CXX_FLAGS "-std=c++11" )
find_package( OpenCV REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( draw draw.cpp )
target_link_libraries( draw ${OpenCV_LIBS})
本文介绍如何使用C++和OpenCV库创建一个特定图案的灰度图像,并展示了一个具体的实现示例,包括如何定义图像尺寸、填充背景以及绘制边界。
1万+

被折叠的 条评论
为什么被折叠?



