質問編集履歴
3
タイトル誤字修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
C#,OpenCVで一度に
|
1
|
+
C#,OpenCVで一度に読み込めない大きなマルチページTIFF(16Bit / Gray画像)ファイルに対するアクセスについて
|
body
CHANGED
File without changes
|
2
解決しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -35,4 +35,18 @@
|
|
35
35
|
var page= Math.Min(100, decoder.Frames.Count)-1; // 100ページ目
|
36
36
|
var img = decoder.Frames[page]; // iページ目の画像
|
37
37
|
// ・・・ imgは BitmapFrame型。 ★これからTiff画像データである16bit配列を生成したい
|
38
|
+
```
|
39
|
+
|
40
|
+
|
41
|
+
【解決】(3)にコードを追加して解決しました。 ・・hihijijiさん、ありがとうございました。
|
42
|
+
```C#
|
43
|
+
// ・・(3)の続き
|
44
|
+
var datas = new UInt16[img.PixelWidth * img.PixelHeight]; // 16bitデータ格納先
|
45
|
+
var stride = img.PixelWidth * ((format.BitsPerPixel + 7) / 8); // CopyPixelsに指定する stride
|
46
|
+
img.CopyPixels(datas, stride, 0); // データの取得
|
47
|
+
var img16 = new Img16Gray(datas, img.PixelWidth, img.PixelHeight); // Gray 16bitデータとして保存。オリジナルクラス
|
48
|
+
var myBitmap = img16.ToBitmapRgb24(); // 表示用のビットマップ生成 (Gray16bit=> Rgb24bitに変換)
|
49
|
+
pboxMain.Image = myBitmap;
|
50
|
+
Refresh();
|
51
|
+
|
38
52
|
```
|
1
(3)内のコメントの間違いを修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -34,5 +34,5 @@
|
|
34
34
|
var decoder = new TiffBitmapDecoder(tifFS, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
|
35
35
|
var page= Math.Min(100, decoder.Frames.Count)-1; // 100ページ目
|
36
36
|
var img = decoder.Frames[page]; // iページ目の画像
|
37
|
-
// ・・・ imgは
|
37
|
+
// ・・・ imgは BitmapFrame型。 ★これからTiff画像データである16bit配列を生成したい
|
38
38
|
```
|