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

news2024/9/21 16:41:54

 一.控件效果说明

二.代码声明(已经循环读取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.coloradmin.cn/o/2134389.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

京东技术专家的修炼之道|“六边形战士”周默分享

前言 最近,京东零售智能增长研发总监周默在京东内部分享了他在京东工作近10年的经验与成长。周默自2015年加入京东以来,经历了后端架构、大数据、基础算法和业务算法等多个技术领域,获得了集团金项奖、最美京东人、集团算法大牛等多项荣誉&a…

C语言错题本

本学渣在一个人学习的途中遇到过许多问题 如果没有老师的帮助可能很长时间都走不出来 所以我也希望我的错误能帮助到你 9月13日 题一 未赋值的局部指针是野指针(C) 题二 PS:对于指针来说,传递的是指针值的副本,point 函数内部对 p 的任何修改都不会影响…

ClickHouse的安装配置+DBeaver远程连接

1、clickhouse的下载: 先去clickhouse官网进行下载,继续往下翻找文档,将DBeaver也下载下来 下载地址:https://packages.clickhouse.com/rpm/stable/ 下载这个四个rpm包 2、上传rmp文件到Linux中 自己创建的一个clickhouse-ins…

3DGS:3D Gaussian Splatting for Real-Time Radiance Field Rendering 论文解读

目录 一、导言 二、相关工作 1、传统场景重建 2、神经渲染与辐射场 3、点云渲染 三、3DGS 1、SFM初始化稀疏点云 2、3D高斯椭球 3、协方差 4、球谐函数 5、3D高斯椭球集建立 6、3D投影2D 7、3D渲染公式 四、损失函数 五、基于梯度自适应改变点云的分布方式 六…

第四天旅游线路预览——从贾登峪到喀纳斯景区入口(贾登峪游客服务中心)

第四天:从贾登峪到喀纳斯风景区入口,晚上住宿贾登峪; 从贾登峪到喀纳斯景区入口(贾登峪游客服务中心): 1)早上8:00起床,吃完早饭,8:30出发&#…

Leetcode 旋转图像

解题思路: 转置矩阵:通过将矩阵的行列互换来实现转置操作。水平翻转矩阵:通过将每行的数据进行对称交换,从而完成90度旋转。 通过这两个步骤,矩阵就会顺时针旋转90度。 class Solution { public:void rotate(vector…

Unity报错:error CS8805: Program using top-level statements must be an executable.

大多数人都不想犯错,但压力大时总是动作变形 大概意思网上查了一下,就是说 C# 的第一(top)行有错误,或者类(类的头部)就没写全 这什么意思呢?又定位不到具体是哪个类 但肯定是刚修改了一点点代…

RocketMQ 基本概念

RocketMQ的由来 随着使⽤中队列和虚拟主题的增加,阿⾥巴巴团队使⽤的 ActiveMQ IO 模块达到了瓶颈。为了尽⼒通过节流、断路器或降级来解决这个问题,但效果不佳。所以开始 关注当时流⾏的消息传递解决⽅案Kafka 。不幸的是, Kafka ⽆法满⾜…

【linux笔记dpkg-buildpackage打包】把一个helloworld程序打包为deb包

说明 打包发布可以不用编译源代码安装&#xff0c;看起来是更方便的软件拷贝方式&#xff0c;下面是一个dpkg-buildpackage工具的最简打包过程实例 先建立一个helloworld程序 main.c #include <stdio.h>int main() {printf("Hello, World!\n");return 0; }…

小程序开关组件

前提是vant组件库不太好改&#xff0c;干脆就手写了一个 <template><view class"switch-container" click"toggleOrder"><view :class"[switch-text, left-text, { left-textChoose: isReverseOrder }]">{{ leftText }}</…

渣土车监控摄像头

渣土车监控摄像头 是一种结合了监控摄像技术和车辆安全管理的先进设备&#xff0c;旨在通过实时监测和录制车辆行驶过程中的画面&#xff0c;提高渣土车的安全性和管理效率。这种摄像头在建筑工地、城市道路、交通执法等领域有着广泛的应用前景。 渣土车监控摄像头在建筑工地运…

在AIoT设备上加速深度神经网络推理的进展:一项综述

这篇论文的标题是《Advancements in Accelerating Deep Neural Network Inference on AIoT Devices: A Survey》&#xff0c;作者是 Long Cheng, Yan Gu, Qingzhi Liu, Lei Yang, Cheng Liu, Ying Wang。论文主要探讨了在人工智能物联网&#xff08;AIoT&#xff09;设备上加速…

多层建筑能源参数化模型和城市冠层模型的区别

多层建筑能源参数化&#xff08;Multi-layer Building Energy Parameterization, BEP&#xff09;模型和城市冠层模型&#xff08;Urban Canopy Model, UCM&#xff09;都是用于模拟城市环境中能量交换和微气候的数值模型&#xff0c;但它们的侧重点和应用场景有所不同。以下是…

重要涉密文件如何防窃取?一分钟了解这5个有效的办法,超实用!

在信息化时代&#xff0c;重要涉密文件承载着企业的核心业务机密、技术专利和敏感客户信息等关键数据。 一旦这些文件被不法分子窃取&#xff0c;不仅会导致无法估量的经济损失&#xff0c;还会严重损害企业的声誉。 因此&#xff0c;构建一个全面的防护体系来防止涉密文件被…

癌症细胞状态的十年探索:单细胞RNA测序的启示

癌症细胞状态的十年探索&#xff1a;单细胞RNA测序的启示 引言 在过去的十年里&#xff0c;单细胞RNA测序&#xff08;scRNA-seq&#xff09;技术彻底改变了我们对复杂生物系统的理解&#xff0c;尤其是在癌症研究领域。癌症作为一种由多种遗传克隆和恶性细胞状态组成的复杂生…

2024年开学季,有哪些大学宿舍必备好物?

随着2024年开学季的到来&#xff0c;新生们即将离开熟悉的家乡&#xff0c;踏入充满未知与挑战的大学生活。对于许多学子而言&#xff0c;宿舍不仅是他们未来几年的居住之所&#xff0c;更是承载青春记忆、实现自我成长的重要空间。为了帮助大家更好地适应校园生活&#xff0c;…

基于Arduino和PCB技术的机器人炫彩矩阵点屏的制作过程

第一部分&#xff1a;引入 随着物联网和嵌入式系统技术的发展&#xff0c;炫彩点阵屏在装饰和信息显示中得到广泛应用。本文将记录如何使用Arduino板、WS2812灯珠和PCB制作技术实现机器人炫彩点阵屏的制作过程。WS2812灯珠以其高亮度、色彩丰富和可编程性&#xff0c;成为制作…

探索代码的守护者:Pyflakes,Python代码的隐形盾牌

文章目录 探索代码的守护者&#xff1a;Pyflakes&#xff0c;Python代码的隐形盾牌第一部分&#xff1a;背景介绍第二部分&#xff1a;Pyflakes是什么&#xff1f;第三部分&#xff1a;如何安装Pyflakes&#xff1f;第四部分&#xff1a;Pyflakes的简单使用方法第五部分&#x…

STM32 移植FATFS时遇到ff_oem2uni函数未定义问题

STM32 移植FATFS时遇到ff_oem2uni/ff_uni2oem/ff_wtoupper函数未定义问题 在移植STM32 FATFS文件系统代码时&#xff0c;完成后编译遇到如下错误&#xff1a; 经过排查分析&#xff0c;是文件没有添加完全导致的&#xff1a; 把ffunicode.c文件添加进工程就可以了&#xff…

CAN数据记录仪与乘用车或者工程车辆OBD口连接注意事项

CAN数据记录仪配置好参数后&#xff0c;车上OBD接口CAN信号线定义是3&#xff0c;11(CANH,CANL)&#xff1b;6&#xff0c;14(CANH,CANL)&#xff0c;直接插到车上可以正常记录数据&#xff1b; 具体分析步骤如下&#xff1a; 1.使用之前了解CANFDLog-VCI设备的接口定义。 下图…