CMakeLists.txt
cmake_minimum_required(VERSION 2.6) # requirement of cmake version
PROJECT(opencvTest_1.0) # project name
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # set the directory of executable files
set(CMAKE_BUILD_TYPE Debug)
set(OpenCV_DIR "/home/opencv-3.4.16/build") # 如果你的opencv找不到,可以自己指定目录
find_package(OpenCV REQUIRED) # find required opencv
include_directories(${OpenCV_INCLUDE_DIRS}) # directory of opencv headers
add_executable(${PROJECT_NAME} opencvTest.cpp) # name of executable file and path of source file
link_directories(${OpenCV_LIBRARY_DIRS}) # directory of opencv library,没有也可以
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) # opencv libraries
opencvTest.cpp
#include#include #include using namespace std; using namespace cv; void Normalization_img(cv::Mat& image, cv::Mat &outputImage, float alpha = 0.0f, vector mean_ = {0.485f, 0.456f, 0.406f}, vector std_={0.229f, 0.224f, 0.225f} ) { for (size_t i = 0; i < outputImage.rows; i++) { for(size_t j = 0; j < outputImage.cols; j++) { if(alpha > 0.0f){ outputImage.at (i,j)[0] = static_cast (image.at (i,j)[0])*alpha; outputImage.at (i,j)[1] = static_cast (image.at (i,j)[1])*alpha; outputImage.at (i,j)[2] = static_cast (image.at (i,j)[2])*alpha; }else{ outputImage.at (i,j)[0] = (static_cast (image.at (i,j)[0])/255.0f-mean_[0])/std_[0]; outputImage.at (i,j)[1] = (static_cast (image.at (i,j)[1])/255.0f-mean_[1])/std_[1]; outputImage.at (i,j)[2] = (static_cast (image.at (i,j)[2])/255.0f-mean_[2])/std_[2]; } } } } int main(int argc, char** argv) { clock_t start,elpased; cv::Mat image = cv::imread("test_images/2.bmp",IMREAD_COLOR); cv::Mat outputImage = cv::Mat::eye(image.rows,image.cols,CV_32FC3); start = clock(); Normalization_img(image,outputImage, 1.f / 255.0); elpased = clock() - start; std::cout <<"自定义时间消耗:"<< (float)elpased/CLOCKS_PER_SEC*1000<<"ms" << std::endl; cv::Mat outputImage1(outputImage,cv::Rect(0,0,3,2)); std::cout<<"outputImage="<< outputImage1<



