OpenCV class2-C#+winfrom显示控件使用窗口大小并内存管理

server/2024/11/15 2:04:47/

 一.控件效果说明

二.代码声明(已经循环读取10000次)

全局

OpenCvSharp.Point point = new OpenCvSharp.Point(0, 0);
OpenCvSharp.Size size2;
Mat src = new Mat();

初始化

  size2 = new OpenCvSharp.Size(pictureBox1.Size.Width, pictureBox1.Size.Height);

按钮代码

  OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";openFileDialog.RestoreDirectory = true;openFileDialog.Multiselect = false;if (openFileDialog.ShowDialog() == DialogResult.OK){src = Cv2.ImRead(openFileDialog.FileName);//适应图片Mat showmat = new Mat();Cv2.Resize(src, showmat, size2);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(showmat);Cv2.WaitKey(100);src.Dispose();pictureBox1.Update();pictureBox1.Image.Dispose();showmat.Dispose();}

总体代码实例:

using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace C1_6
{public partial class Demo2_adaptwindow : Form{OpenCvSharp.Point point = new OpenCvSharp.Point(0, 0);OpenCvSharp.Size size2;Mat src = new Mat();public Demo2_adaptwindow(){InitializeComponent();size2 = new OpenCvSharp.Size(pictureBox1.Size.Width, pictureBox1.Size.Height);}private void button1_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Filter = "图文件(*.*)|*.jpg;*.png;*.jpeg;*.bmp";openFileDialog.RestoreDirectory = true;openFileDialog.Multiselect = false;if (openFileDialog.ShowDialog() == DialogResult.OK){src = Cv2.ImRead(openFileDialog.FileName);//适应图片Mat showmat = new Mat();Cv2.Resize(src, showmat, size2);pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(showmat);Cv2.WaitKey(100);src.Dispose();pictureBox1.Update();pictureBox1.Image.Dispose();showmat.Dispose();}}}
}


http://www.ppmy.cn/server/119812.html

相关文章

SpringBoot 数据库表结构文档生成

官方地址&#xff1a;https://github.com/pingfangushi/screw screw 螺丝钉&#xff0c;支持以下数据库 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB&#xff08;2016&#xff09; 生产文档支持 html word markdown 开始 添加依赖 <!-- 螺丝钉 --><…

YOLOv8目标检测——迁移学习

迁移学习方法 &#xff08;1&#xff09;预训练模型与训练模型的构建 实现思路 使用yolov8x.yaml的模型配置作为教师模型&#xff0c;学生模型采用yolov8n.yaml。先使用较大的教师模型在数据集上面进行训练&#xff0c;之后再用学生模型的网络将教师模型训练成为学生模型。 …

低代码开发:助力制造业数字化高质量发展

随着信息技术的飞速发展&#xff0c;制造业正经历着前所未有的数字化转型。在这个过程中&#xff0c;低代码开发作为一种新兴的软件开发方式&#xff0c;正逐渐成为推动制造业数字化高质量发展的重要力量。本文将探讨低代码开发如何助力制造业实现数字化转型&#xff0c;并提高…

Redis详细解析

Redis 什么是Redis?关系型与非关系型数据库Redis可以做什么Redis入门安装在Windows系统上安装在Linux系统上安装 Redis在Linux系统上启动运行如何设置redis-server后台运行与关闭如何设置redis客户端登录时需要验证密码**设置允许远程连接redis服务**Redis数据类型Redis常用命…

Linux入门2

文章目录 一、Linux基本命令1.1 文件的创建和查看命令1.2 文件的复制移动删除等命令1.3 查找命令1.4 文件的筛选和管道的使用1.5 echo、tail和重定向符 二、via编辑器三、权限控制3.1 root用户&#xff08;超级管理员&#xff09;3.2 用户和用户组3.3 权限信息3.4 chmod命令 一…

Pool 和 PG 架构(二)

Ceph 的存储架构设计旨在提供高可用性和可扩展性。其中&#xff0c;Pool&#xff08;存储池&#xff09;和 PG&#xff08;放置组&#xff09;是两个核心概念。下面详细介绍 Ceph 的 Pool 和 PG 架构以及它们之间的关系。 1. Pool池 概念&#xff1a; Pool&#xff08;存储池…

setImmediate() vs setTimeout() 在 JavaScript 中的区别

setImmediate() vs setTimeout() 在 JavaScript 中的区别 在 JavaScript 中&#xff0c;setImmediate() 和 setTimeout() 都用于调度任务&#xff0c;但它们的工作方式不同。 JavaScript 的异步特性 JavaScript 以其非阻塞、异步行为而闻名&#xff0c;尤其是在 Node.js 环境…

领域驱动DDD三种架构-分层架构、洋葱架构、六边形架构

博主介绍&#xff1a; 大家好&#xff0c;我是Yuperman&#xff0c;互联网宇宙厂经验&#xff0c;17年医疗健康行业的码拉松奔跑者&#xff0c;曾担任技术专家、架构师、研发总监负责和主导多个应用架构。 技术范围&#xff1a; 目前专注java体系&#xff0c;以及golang、.Net、…