SRM Vision 暑期培训

by Leozheng @ SRMVision

§9 图像存储、读取与表示/色彩空间 

#include <opencv2/opencv.hpp>
using namespace cv; 			// opencv 库的命名空间为 cv
int main() {
    auto capture = VideoCapture(0); 	// auto 为 C++ 11 新特性
    if (!capture.isOpened()) 		// 判断是否正常打开
        return -1;
    Mat frame; 				// 可存储图像的类型
    while (capture.read(frame)) {
        imshow("img", frame);
        if (waitKey(5) == 27) 		// 按下 ESC 键退出
            break;
    }
    auto frame = imread("test.jpg"); 	// 读取图像
    namedWindow("img", WINDOW_AUTOSIZE); // 创建窗口
    imshow("img", frame); 		// 显示图像
    imwrite("test.jpg", frame);
    waitKey(0); 			// 等待键盘输入
    destroyAllWindows(); 		// 销毁所有窗口
    capture.release();			// 使用完,释放视频流对象
    return 0;
}

6.2 色彩空间

#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
    auto frame = imread("test.png");
    
    Mat hsv;
    cvtColor(frame, hsv, COLOR_BGR2HSV);
    imshow("hsv", hsv);
    waitKey(0);
    
    Mat gray, binary;
    cvtColor(frame, gray, COLOR_BGR2GRAY);
    threshold(gray, binary, 128, 255, THRESH_BINARY);
    imshow("binary", binary);
    
    return 0;
}

第九讲 - 作业:

读取一张图片(图片自己寻找),通过一些通道操作,设计一个“滤镜”(彩色滤镜黑白滤镜都可以,建议彩色),要有自己的调色风格,自由发挥即可,尽量符合大众审美...

并把原图和加过滤镜后的图片一起显示。

提交代码与运行截图。

感 谢

@ SRMVision