玩命加载中 . . .

OpenCV_RGB&GRAY


读取图像

C++版本

imread( const String& filename, int flags = IMREAD_COLOR )
filename	// 图片路径
flags		// 以彩色图或灰度图的方式进行读取
    IMREAD_GRAYSCALE = 0    // 灰度图
    IMREAD_COLOR     = 1    // 彩色图(默认)
namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE)
winname	// 窗口名称
flags	// 窗口属性
	WINDOW_NORMAL		// 可拖动改变大小
	WINDOW_AUTOSIZE		// 自动调整适应图片大小
imwrite(const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>())
filename	// 文件名
img		// 对象名
Mat src = imread("./test.png", IMREAD_GRAYSCALE);
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
waitKey(0);

Python版本

cv.imread()
cv.imshow()
import cv2 as cv

src = cv.imread("./test.png")
print(type(src))	// <class 'numpy.ndarray'>
print(src.dtype)	// uint8
print(src.shape)	// (610, 570, 3)
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
cv.waitKey(0)
cv.destroyAllWindows()
test

转化为灰度图

C++版本

cvtColor(src, gray, COLOR_BGR2GRAY)
src	// input
gray	// output
COLOR_BGR2GRAY	//RGB图转为GRAY灰度图
默认三个通道顺序是: B, G, R
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int artc, char** argv) {
    Mat src = imread("./test.png", IMREAD_COLOR);
    if (src.empty()) {
        printf("could not load image...\n");
        return -1;
    }
    namedWindow("input", WINDOW_AUTOSIZE);
    imshow("input", src);

    Mat gray;
    cvtColor(src, gray, COLOR_BGR2GRAY);
    imwrite("./gray.png", gray);
    namedWindow("gray", WINDOW_AUTOSIZE);
    imshow("gray", gray);
    waitKey(0);
    return 0;
}

Python版本

src = cv.imread("./test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
cv.imwrite('gray.png', gray)
cv.imshow("gray", gray)
cv.waitKey(0)
cv.destroyAllWindows()
test
灰度图

文章作者: kunpeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kunpeng !
  目录