回答編集履歴
3
微修正
test
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
その場合,ある行の画素のデータは,
|
14
14
|
|
15
|
-
[B][G][R][B][G][R][B][G][R]...
|
15
|
+
[B0][G0][R0][B1][G1][R1][B2][G2][R2]...
|
16
16
|
|
17
17
|
という並び(ここで1つの[]が1byteだと思ってください)になっています.
|
18
18
|
|
@@ -20,6 +20,6 @@
|
|
20
20
|
|
21
21
|
これを(無理矢理)intとして読み取ろうとしているので,(intのサイズが4byteだとしたら)
|
22
22
|
|
23
|
-
[B][G][R][B] [G][R][B][G] [R][B][G][R] ...
|
23
|
+
[B0][G0][R0][B1] [G1][R1][B2][G2] [R2][B3][G3][R3] ...
|
24
24
|
|
25
|
-
という形で4byte毎
|
25
|
+
という形で4byte毎のメモリ内容をintとして解釈した値になってしまっています.
|
2
補足
test
CHANGED
@@ -1,3 +1,25 @@
|
|
1
1
|
* グレースケール画像ならば IMREAD_GRAYSCALE を指定して8bit1chとして読み込んではどうでしょう.
|
2
2
|
|
3
3
|
* そのうえで,`tget_line[x]=gray.at<int>(y,x)`の部分は,`gray.at<unsigned char>(y,x)`としてはどうでしょうか.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
---
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
現状では,画像は 8bit3ch として読み込まれていると思います.
|
12
|
+
|
13
|
+
その場合,ある行の画素のデータは,
|
14
|
+
|
15
|
+
[B][G][R][B][G][R][B][G][R]...
|
16
|
+
|
17
|
+
という並び(ここで1つの[]が1byteだと思ってください)になっています.
|
18
|
+
|
19
|
+
1画素の情報が3byteです.
|
20
|
+
|
21
|
+
これを(無理矢理)intとして読み取ろうとしているので,(intのサイズが4byteだとしたら)
|
22
|
+
|
23
|
+
[B][G][R][B] [G][R][B][G] [R][B][G][R] ...
|
24
|
+
|
25
|
+
という形で4byte毎にintと解釈した値になってしまっています.
|
1
文章のつながりをより明確化
test
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
* グレースケール画像ならば IMREAD_GRAYSCALE を指定して8bit1chとして読み込んではどうでしょう.
|
2
2
|
|
3
|
-
* で,`tget_line[x]=gray.at<int>(y,x)`の部分は,`gray.at<unsigned char>(y,x)`としてはどうでしょうか.
|
3
|
+
* そのうえで,`tget_line[x]=gray.at<int>(y,x)`の部分は,`gray.at<unsigned char>(y,x)`としてはどうでしょうか.
|