opencv 4.4 instalar VS2019

1. Preparação

1. Baixe o arquivo exe opencv4.4.0 do site oficial e extraia-o para a pasta especificada

2. Adicione a variável de conversão F:\file\opencv\opencv\build\x64\vc15\bin ao caminho. Estou usando vs2019, então vc14 não é adicionado.

3. Copie opencv_world440.dll e opencv_world440d.dll para a pasta C:\Windows\SysWOW64.
Observação: usuários do sistema de 64 bits precisam prestar atenção. Os arquivos DLL de 32 bits são colocados em [C:\Windows\SysWOW64], e os de 64 bits são colocados em [C:\Windows\SysWOW64]. O arquivo DLL é colocado em "[C:\Windows\System32].

4. Abra o vs2019 e crie um novo programa de linha de comando. Após a criação ser bem-sucedida, abra o gerenciador de propriedades. Primeiro selecione o gerenciador de configuração especificado.
Insira a descrição da imagem aqui

Adicione ao diretório de inclusão:
F:\file\opencv\opencv\build\include
Adicione ao diretório da biblioteca:
F:\file\opencv\opencv\build\x64\vc15\lib
Selecione entrada -> Dependências adicionais Adicione opencv_world440d.lib (Faça alterações de acordo com a versão baixada. Ela pode ser visualizada em opencv\build\x64\vc15\lib)

5. Teste e leia uma foto

#include <opencv2/opencv.hpp>

int main(int argc, char** argv) {
    
    
	cv::Mat img = cv::imread("F:\\file\\abcdefg.jpg");
	if (img.empty()) {
    
    
		printf("资源未找到");
		return -1;
	}
	cv::namedWindow("Example1", cv::WINDOW_AUTOSIZE);
	cv::imshow("Example1", img);
	cv::waitKey(0);
	cv::destroyWindow("Example1");
	return 0;
}

2. Comece

1. Leia um vídeo

#include <opencv2/opencv.hpp>

int main(int argc, char** argv) {
    
    
	cv::namedWindow("Example2", cv::WINDOW_AUTOSIZE);
	cv::VideoCapture cap;
	cap.open("F:\\file\\VID_20200131_115507.mp4");
	cv::Mat Frame;
	for (;;) {
    
    
		cap >> Frame;
		if (Frame.empty()) break;
		cv::imshow("Example2", Frame);
		if (cv::waitKey(33) >= 0) break; //等待输入,时长为33毫秒;
		//30FPS播放,准确数字为33.3ms...,60FPS则设置等待(1000/60)ms
	}

	return 0;
}

2. Player de vídeo com barra de progresso

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

using namespace std;

int g_slider_position = 0;
int g_run = 1, g_dontset = 0;//start out int single step mode
cv::VideoCapture g_cap;

void onTrackbarSlide(int pos, void*) {
    
    
	g_cap.set(cv::CAP_PROP_POS_FRAMES, pos);

	if (!g_dontset)
		g_run = 1;
	g_dontset = 0;
}

int main(int argc, char** argv) {
    
    
	
	cv::namedWindow("Example2_4", cv::WINDOW_AUTOSIZE); //创建一个窗口

	g_cap.open("F:\\file\\VID_20200131_115507.mp4"); //将指定的视频读取到g_cap中
	int frames = (int)g_cap.get(cv::CAP_PROP_FRAME_COUNT); //获取视频的总帧数
	int tmpw = (int)g_cap.get(cv::CAP_PROP_FRAME_WIDTH); //获取视频的宽度
	int tmph = (int)g_cap.get(cv::CAP_PROP_FRAME_HEIGHT); //获取视频的高度
	cout << "Video has" << frames << "frames of dimensions("
		<< tmpw << "," << tmph << ")." << endl;

	cv::createTrackbar("Position", "Example2_4", &g_slider_position, frames,
		onTrackbarSlide);//创建进度条
	cv::Mat frame;
	for (;;) {
    
    
		if (g_run != 0) {
    
    
			g_cap >> frame;
			if (frame.empty()) break;
			int current_pos = (int)g_cap.get(cv::CAP_PROP_POS_FRAMES); //获取当前的帧数位置
			g_dontset = 1;

			cv::setTrackbarPos("Position", "Example2_4", current_pos);
			cv::imshow("Example2_4", frame);

			g_run -= 1;
		}

		char c = (char)cv::waitKey(10);
		if(c=='s')//single step
		{
    
    
			g_run = 1; cout << "Single step,run=" << g_run << endl;
		}
		if (c == 'r')//run mode
		{
    
    
			g_run = -1; cout << "Run mode,run=" << g_run << endl;
		}
		if (c == 27)
			break;
	}
	return 0;
}

3. Filtragem espacial do kernel gaussiano

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

using namespace std;


//简单处理函数
void example2_5(const cv::Mat& image) {
    
    
	//创建连个窗口用来显示出入和输出的图像
	cv::namedWindow("Example2_5-in", cv::WINDOW_NORMAL);
	cv::namedWindow("Example2_5-out", cv::WINDOW_NORMAL);

	cv::imshow("Example2_5-in", image);

	cv::Mat out; //输出的图像

	//高斯核模糊滤波
	cv::GaussianBlur(image, out, cv::Size(5, 5), 3, 3);
	cv::GaussianBlur(out, out, cv::Size(5, 5), 3, 3);

	//将处理后的图像打印在输出窗口
	cv::imshow("Example2_5-out", out);

	cv::waitKey(0);
}

int main(int argc, char** argv) {
    
    
	
	cv::Mat image = cv::imread("F:\\file\\abcdefg.jpg");

	example2_5(image);

	return 0;
}

Ao criar uma janela, AUTOSIZE ajustará automaticamente a janela ao tamanho da imagem quebrada, mas há um valor máximo. Quando a imagem excede o valor máximo, a imagem não será totalmente exibida. Ao usar o parâmetro NORMAL, um valor fixo A janela de tamanho será criada e a imagem será dimensionada para caber no tamanho da janela

Acho que você gosta

Origin blog.csdn.net/qq_40092672/article/details/109035592
Recomendado
Clasificación