質問するログイン新規登録

質問編集履歴

3

タイトル誤字修正

2019/02/08 01:22

投稿

trickster
trickster

スコア14

title CHANGED
@@ -1,1 +1,1 @@
1
- C#,OpenCVで一度に良い込めない大きなマルチページTIFF(16Bit / Gray画像)に対するアクセスについて
1
+ C#,OpenCVで一度に読み込めない大きなマルチページTIFF(16Bit / Gray画像)ファイルに対するアクセスについて
body CHANGED
File without changes

2

解決しました

2019/02/08 01:22

投稿

trickster
trickster

スコア14

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)内のコメントの間違いを修正しました

2019/02/08 01:02

投稿

trickster
trickster

スコア14

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は FormatConvertedBitmap型。 16bitデータて読み込めてない模様
37
+ // ・・・ imgは BitmapFrame型。 ★これからTiff画像データである16bit配列を生成
38
38
  ```