c++でopencvのcreateCLAHE()
で画像のヒストグラム平均化するコードを書きました。
参考サイト
c++初心者のため
・スマートな書き方(無駄なコードをスマートにする、計算量を減らすなど)
・文法間違い(画像の引数、返り値など)
など添削お願いできないしょうか?
よろしくお願いします。
c++
1 2#include <opencv2/core.hpp> 3#include <vector> // std::vector 4cv::Mat clahe_preprocess(const cv::Mat& img) 5{ 6 // READ RGB color image and convert it to Lab 7 cv::Mat bgr_image = img 8 cv::Mat lab_image; 9 cv::cvtColor(bgr_image, lab_image, CV_BGR2Lab); 10 11 // Extract the L channel 12 std::vector<cv::Mat> lab_planes(3); 13 cv::split(lab_image, lab_planes); // now we have the L image in lab_planes[0] 14 15 // apply the CLAHE algorithm to the L channel 16 cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE(); 17 clahe->setClipLimit(4); 18 cv::Mat dst; 19 clahe->apply(lab_planes[0], dst); 20 21 // Merge the the color planes back into an Lab image 22 dst.copyTo(lab_planes[0]); 23 cv::merge(lab_planes, lab_image); 24 25 // convert back to RGB 26 cv::Mat image_clahe; 27 cv::cvtColor(lab_image, image_clahe, CV_Lab2BGR); 28 return image_clahe 29} 30 31//main 処理 32cv::Mat input_image; 33input_image[i] = cv::imread(IMAGEDIR+image_file_name); 34cv::Mat image; 35resize(input_image, image, Size(IMG_WIGHT, IMG_HEIGHT), INTER_NEAREST); 36if(cv::mean(image)<70){ 37 cv::Mat img = clahe_preprocess(image) 38} else { 39 img = image 40} 41// Set image into Conv Task 42setInputImage(task, CONV_INPUT_NODE, img); 43
>> 文法間違い(画像の引数、返り値など)
メッセージを読みましょう。メッセージが出ていないのなら、構文的な間違いはないはずです。
回答1件
あなたの回答
tips
プレビュー