图像归一化速度测试

图像归一化速度测试,第1张

图像归一化速度测试

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<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存