質問編集履歴

3

マークダウン方式になっていない箇所があったため修正

2023/01/14 02:26

投稿

moko
moko

スコア6

test CHANGED
File without changes
test CHANGED
@@ -115,6 +115,8 @@
115
115
 
116
116
 
117
117
  ### 追記  SurferOnWwwさんのサンプルプログラム反映後
118
+
119
+ ```ここに言語を入力
118
120
  //インストール済みライブラリ
119
121
  //OpenCVSharp4
120
122
  //OpenCVShaerp4.Extensions
@@ -190,9 +192,9 @@
190
192
  }
191
193
  }
192
194
  }
193
-
195
+ ```
194
-
195
-
196
-
197
-
198
-
196
+
197
+
198
+
199
+
200
+

2

追記

2023/01/13 13:37

投稿

moko
moko

スコア6

test CHANGED
File without changes
test CHANGED
@@ -114,6 +114,85 @@
114
114
 
115
115
 
116
116
 
117
+ ### 追記  SurferOnWwwさんのサンプルプログラム反映後
118
+ //インストール済みライブラリ
119
+ //OpenCVSharp4
120
+ //OpenCVShaerp4.Extensions
121
+ //OpenCVSharp4.runtime.win
122
+
123
+ using System;
124
+ using System.Collections.Generic;
125
+ using System.ComponentModel;
126
+ using System.Data;
127
+ using System.Drawing;
128
+ using System.Linq;
129
+ using System.Text;
130
+ using System.Threading.Tasks;
131
+ using System.Windows.Forms;
132
+ using System.Diagnostics; //ストップウォッチクラス使用の為記載
133
+ //以下、OpenCvsharpの使用とMatの変換用として追加
134
+ using OpenCvSharp;
135
+ using OpenCvSharp.Extensions;
136
+
137
+
138
+ namespace OpenCV_メモリリークデバッグ用
139
+ {
140
+ public partial class Form1 : Form
141
+ {
142
+ Mat image;
143
+ Stopwatch sw;
144
+
145
+ public Form1()
146
+ {
147
+ InitializeComponent();
148
+ }
149
+
150
+ private void Form1_Load(object sender, EventArgs e)
151
+ {
152
+ pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
153
+ }
154
+
155
+ private void BtnLoad_Click(object sender, EventArgs e)
156
+ {
157
+ var ofd = new OpenFileDialog();
158
+ //ファイルフィルタ
159
+ ofd.Filter = "Image File(*.bmp,*.jpg,*.png,*.tif)|*.bmp;*.jpg;*.png;*.tif|Bitmap(*.bmp)|*.bmp|Jpeg(*.jpg)|*.jpg|PNG(*.png)|*.png";
160
+ //ダイアログの表示
161
+ if (ofd.ShowDialog() == DialogResult.OK)
162
+ {
163
+ string image_path = ofd.FileName; //選択した画像のパスを取得
164
+ image = Cv2.ImRead(image_path); //ImRead関数で画像を読み込む
165
+ pictureBox1.Image = BitmapConverter.ToBitmap(image); //MatをBitmapへ変換し pictureBox1で表示させる
166
+ }
167
+ }
168
+
169
+ private void BtnStart_Click(object sender, EventArgs e)
170
+ {
171
+ sw = new Stopwatch(); // ストップウォッチオブジェクト生成
172
+ Bitmap pic = null;
173
+ sw.Start(); //時間計測スタート
174
+
175
+ for (int i=0; i<1000; i++)
176
+ {
177
+ //グレー化
178
+ using (var grayImage = image.CvtColor(ColorConversionCodes.BGR2GRAY))
179
+ //二値化
180
+ using (var thresholdImege = grayImage.Threshold(128, 255, ThresholdTypes.Binary))
181
+ {
182
+ pic = BitmapConverter.ToBitmap(thresholdImege);
183
+ pictureBox1.Image = pic;
184
+ }
185
+ }
186
+
187
+ sw.Stop();//時間計測ストップ
188
+ Console.WriteLine(sw.Elapsed);//計測時間表示
189
+
190
+ }
191
+ }
192
+ }
117
193
 
118
194
 
119
195
 
196
+
197
+
198
+

1

エラー内容追加

2023/01/11 14:39

投稿

moko
moko

スコア6

test CHANGED
File without changes
test CHANGED
@@ -6,6 +6,9 @@
6
6
  ### 内容
7
7
  OpenCVにて二値化処理を1000回行い、その時間を計測するプログラムを作成しました。
8
8
  しかし、プログラムを実行したところメモリリークの影響でエラーが発生してしまいます。
9
+
10
+ ###エラーメッセージは以下です。画像にて失礼します。
11
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-01-11/b45ed934-eef0-4fb1-b123-b8c8df4a9545.png)
9
12
 
10
13
 
11
14
  使用した画像のサイズ:258 KB