opencv作业1

本文介绍了OpenCV用于显示不同分辨率图片和测试电脑摄像头分辨率及帧率的代码示例,并对比了OpenCV与HALCON、MATLAB在计算机视觉领域的应用、授权和接口支持的差异。同时,讨论了PNG与JPEG图片格式的压缩和编辑特性。
摘要由CSDN通过智能技术生成

1.显示两张不同分辨率图片

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

void main()
{
	string path1 = "D:/opencv_cpp_course_resources/resources/test.png";
	Mat img1 = imread(path1);
	string path2 = "D:/opencv_cpp_course_resources/resources/lambo.png";
	Mat img2 = imread(path2);
	cout << img1.size << endl;
	cout << img2.size << endl;
	imshow("img1", img1);
	imshow("img2", img2);
	waitKey(0);

}

2.测试电脑摄像头分辨率和帧率

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv)
{
    Mat frame;
    VideoCapture capture(0);
    double fps;
    char string[10];
    namedWindow("Camera FPS");
    double t = 0;
    while (true)
    {
        t = (double)getTickCount();
        if (waitKey(1) == 27) { break; }
        if (capture.isOpened())
        {
            capture >> frame;

            t = ((double)getTickCount() - t) / cv::getTickFrequency();
            fps = 1.0 / t;
            sprintf_s(string, "%.2f", fps);
            std::string fpsString("FPS:");
            fpsString += string;
            printf("fps: %.2f width:%d height:%d fps:%.2f\n", fps, frame.cols, frame.rows, capture.get(cv::CAP_PROP_FPS));

            putText(frame, fpsString,Point(5, 20),FONT_HERSHEY_SIMPLEX,0.5,Scalar(0, 0, 0));
            imshow("Camera FPS", frame);
        }
        else
        {
            cout << "No Camera Input!" << endl;
            break;
        }
    }
}

思考题

1.Opencv库与Matlab、halcon的区别?

  1. HALCON可以用C,C++,C#,Visual basic和Delphi等语言访问,OpenCV提供了Python、Ruby、MATLAB等语言的接口。
  2. OpenCV侧重计算机视觉领域,HALCON侧重机器视觉领域。
  3. HALCON是商业软件,而OpenCV可以在商业和研究领域中免费使用。
  4. 虽然MATLAB也带有很多函数库,但不同于HALCON和OpenCV,MATLAB是个完整的集成开发环境,包括了编辑器、函数库、还有Matlab语言本身均由MathWorks公司提供。例如,用MATLAB你可以debug,但是对于OpenCV相关的代码调试,你就需要Visual Studio了。

2.在显示完之后,用不用destroyWindow()有什么区别?

destroyWindow()用于关闭特定的窗口,括号内填写窗口的名字,类型为string

3.png图片格式和jpg图片格式有什么区别?

1、png是无损压缩,png即可移植网络图形格式,也是一种位图文件存储格式,可以进行无损压缩。而jpg是最常见的图片格式了,jpg是有损;

  2、而png格式可编辑,如图片中有字体等要素只需要导入到PS内,就可以PS再做更改,但由于,jpg格式已经经过了压缩和合并,因此jpg格式不可编辑;

  3、对于两种格式的解析度,png高于jpg。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值