fanfuhan OpenCV 教學006 ~ opencv-006-Look Up Table(LUT)查找表的使用 [顏色轉換]

fanfuhan OpenCV 教學006 ~ opencv-006-Look Up Table(LUT)查找表的使用 [顏色轉換]

fanfuhan OpenCV 教學006 ~ opencv-006-Look Up Table(LUT)查找表的使用 [顏色轉換]

資料來源: https://fanfuhan.github.io/

https://fanfuhan.github.io/2019/03/23/opencv-006/

GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV


顏色匹配,例如講講灰色圖像進行偽彩色增強

加快計算速度

C++

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

// 自定义LUT
Mat &myColorMap(Mat &image);

/*
 *  Look Up Table(LUT)查找表的使用
 */
int main() {
    Mat src = imread("../images/LinuxLogo.jpg");
    imshow("input", src);

    // 使用LUT
    Mat dst;
    applyColorMap(src, dst, COLORMAP_SUMMER);
    imshow("colorMap", dst);

    // 使用自己的LUT
    Mat my_dst, gray;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    my_dst = myColorMap(gray);
    imshow("my_dst", my_dst);

    waitKey(0);
    return 0;
}

// 自定义LUT
Mat &myColorMap(Mat &image) {
    int lut[256];
    for (int i = 0; i < 256; ++i) {
        if (i < 127)
            lut[i] = 0;
        else
            lut[i] = 255;
    }

    for (int row = 0; row < image.rows; ++row) {
        for (int col = 0; col < image.cols; ++col) {
            int pv = image.at<uchar>(row, col);
            image.at<uchar>(row, col) = lut[pv];
        }
    }

    return image;
}

Python:

import cv2 as cv

src = cv.imread("../images/LinuxLogo.jpg")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
dst = cv.applyColorMap(src, cv.COLORMAP_COOL)
cv.imshow("output", dst)

cv.waitKey(0)
cv.destroyAllWindows()

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *