1
私の画像(.jpgに保存されたRGB)を変換してその特定の領域を強調する必要がありました。 ImageJを使用して私は、LAB色空間での画像のLチャンネルの抽出が、私がさらなる検査に必要なものであることを発見しました。 C++/OpenCVの中に実装される場合 、結果は(写真ImageJ L-channelとOpenCV L-channelを参照)ImageJのものとは全く異なるものである。OpenCVとImageJのRGB - > L * a * b変換の違い
#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
using namespace std;
int main(){
vector <Mat> lab_planes;
Mat src, lab;
src = imread("Pic.jpg", CV_LOAD_IMAGE_COLOR);
cvtColot(src, lab, CV_BGR2Lab);
split(lab, lab_planes);
imshow("L", lab_planes[0]);
imshow("a", lab_planes[1]);
imshow("b", lab_planes[2]);
waitKey(0);
return 0;
}
私はそれをグーグルしようとしたと記憶の違いに問題があるかもしれないことが判明しましたチャンネルの範囲(0〜255の代わりに0〜100)やRGBプレゼンテーションがありますが、ImageJと同じ結果を受け取る方法はわかりません。
ありがとうございます!
簡単!ありがとう、アンドレイ。 'extend'の範囲を0〜255にすると結果が得られました。 – melodisease