質問編集履歴
15
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
imarr[0][0]
|
40
40
|
#660
|
41
41
|
```
|
42
|
-
###追記(1),(2),(3),(3.1)あります
|
42
|
+
###追記(1),(2),(3),(3.1),(4)あります
|
43
43
|
|
44
44
|
###追記(1)
|
45
45
|
Yhaya様のアドバイスを受けてopencvで読み込んでRGBに変換した後、描写することを試みました。
|
14
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -127,4 +127,12 @@
|
|
127
127
|
`img * 660/9.25e-43`
|
128
128
|
|
129
129
|
すると、PILのと同じ値に変換できた。
|
130
|
-
どうやら定数が掛けているよう。
|
130
|
+
どうやら定数が掛けているよう。
|
131
|
+
|
132
|
+
###追記(4)2018/10/19
|
133
|
+
そもそもtifファイルがtifに準拠したフォーマットになっているか確認する。
|
134
|
+
tifをバイナリエディタで開き中にあるタグの情報を確認する。
|
135
|
+
その後フリーのtif解析ソフトを使って確認してみる。(自信なかったので...)
|
136
|
+
|
137
|
+
以下、その結果を貼ります。
|
138
|
+

|
13
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
imarr[0][0]
|
40
40
|
#660
|
41
41
|
```
|
42
|
-
###追記(1),(2)あります
|
42
|
+
###追記(1),(2),(3),(3.1)あります
|
43
43
|
|
44
44
|
###追記(1)
|
45
45
|
Yhaya様のアドバイスを受けてopencvで読み込んでRGBに変換した後、描写することを試みました。
|
12
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
pythonの画像処理libのopencvとPILを試しに使っています。
|
2
2
|
|
3
|
-
|
4
|
-
> ・追記(3)2018/10/26
|
5
|
-
取り扱うtifデータは1ピクセルにカウント数の入ったデータなのでグレースケール相当のものです。カウント数の範囲は、-2から177880です。
|
6
|
-
|
7
|
-
|
8
|
-
|
9
3
|
しかし、表示される画像は同じなのに、
|
10
4
|
2つのデータが違う値で出てくるのです。
|
11
5
|
|
@@ -107,6 +101,17 @@
|
|
107
101
|
#6.32e-43
|
108
102
|
```
|
109
103
|
|
104
|
+
###追記(3)2018/10/26
|
105
|
+
取り扱うtifデータは1ピクセルにカウント数の入ったデータなのでグレースケール相当のものです。カウント数の範囲は、-2から177880です。
|
106
|
+
ですので、opencvもPILも配列に変換した後は高さ×幅の2次元になります。
|
107
|
+
|
108
|
+
RGBのように3つあるわけではないので、opencvやPILを使うべきデータではないということなのでしょうか。そもそも一般的なtifファイルではない(グレースケールの場合0~255)ので取扱いも違うのでしょうか。
|
109
|
+
|
110
|
+
最終的に作りたいプログラムは、カウント数の範囲(-2から177880)のデータを画像として表示させる為に(グレースケールの場合)256に分割して表示したいということです。
|
111
|
+
その為、minmumとmaximumを調整するプログラムを作りたいと思いました。
|
112
|
+
|
113
|
+
minmumは最小値で固定して、maximumを200000にしたり100000にしたりと変更させ、それを256で区別して、表示させる。という感じです。
|
114
|
+
|
110
115
|
###追記(3.1)2018/10/26
|
111
116
|
上の追記(3)でも書いたように元データのtifが1色(カウント数)相当だったため、
|
112
117
|
質問当初に書いたように読み込みを行った場合を考えた。
|
11
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
> ・追記(3)2018/10/26
|
5
|
-
取り扱うtifデータは1ピクセルにカウント数の入ったデータなのでグレースケール相当のものです。
|
5
|
+
取り扱うtifデータは1ピクセルにカウント数の入ったデータなのでグレースケール相当のものです。カウント数の範囲は、-2から177880です。
|
6
6
|
|
7
7
|
|
8
8
|
|
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|
そこでopencvのデータに(img[0][0]のデータが660になる)
|
120
120
|
660(`imarr[0][0]`)/9.25e-43(`img[0][0]`)
|
121
|
-
を全
|
121
|
+
を全配列に掛けてみた。
|
122
122
|
`img * 660/9.25e-43`
|
123
123
|
|
124
124
|
すると、PILのと同じ値に変換できた。
|
10
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -107,5 +107,19 @@
|
|
107
107
|
#6.32e-43
|
108
108
|
```
|
109
109
|
|
110
|
+
###追記(3.1)2018/10/26
|
111
|
+
上の追記(3)でも書いたように元データのtifが1色(カウント数)相当だったため、
|
110
|
-
|
112
|
+
質問当初に書いたように読み込みを行った場合を考えた。
|
113
|
+
・PILの場合
|
114
|
+
`imarr[0][0]` = 660 あってる
|
115
|
+
|
116
|
+
・opencvの場合
|
117
|
+
`img[0][0]` = 9.25e-43 良くわからない
|
118
|
+
|
119
|
+
そこでopencvのデータに(img[0][0]のデータが660になる)
|
120
|
+
660(`imarr[0][0]`)/9.25e-43(`img[0][0]`)
|
121
|
+
を全部にかけてみた。
|
122
|
+
`img * 660/9.25e-43`
|
123
|
+
|
124
|
+
すると、PILのと同じ値に変換できた。
|
111
|
-
|
125
|
+
どうやら定数が掛けているよう。
|
9
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
pythonの画像処理libのopencvとPILを試しに使っています。
|
2
2
|
|
3
|
+
|
4
|
+
> ・追記(3)2018/10/26
|
5
|
+
取り扱うtifデータは1ピクセルにカウント数の入ったデータなのでグレースケール相当のものです。
|
6
|
+
|
7
|
+
|
8
|
+
|
3
9
|
しかし、表示される画像は同じなのに、
|
4
10
|
2つのデータが違う値で出てくるのです。
|
5
11
|
|
8
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -92,7 +92,7 @@
|
|
92
92
|
これによって表示された画像は、変換前から変化がありました。
|
93
93
|
ただ、imarrの(PILで読み込んだ正しい)データと比べると
|
94
94
|
CV_img_RGBの(openCVで読み込んでRGB変換した)データは違う。
|
95
|
-
(しかも見当違いに違う、e-43とは...)
|
95
|
+
(しかも見当違いに違う、e-43も違うとは...)
|
96
96
|
```Python3
|
97
97
|
print(imarr[0][0])
|
98
98
|
#660
|
7
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
調べて見ると
|
47
47
|
`CV_img_RGB = CV_im[:, :, ::-1].copy()`
|
48
48
|
を挿入し、RGBにするとのことでしたが、エラーが出てしましました。
|
49
|
-
どこかおかしなところがありますでしょうか。
|
49
|
+
どこかおかしなところがありますでしょうか。(追記(2)で一応対処済み)
|
50
50
|
|
51
51
|
```python3
|
52
52
|
%matplotlib inline
|
6
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -88,13 +88,18 @@
|
|
88
88
|
`CV_img_RGB = CV_im[:, ::-1].copy()`
|
89
89
|
に変えることで、正常に動くようになりました。
|
90
90
|
`[:, :, ::-1]`この中の次元をCV_imと合わせる必要があったようです。
|
91
|
+
|
91
92
|
これによって表示された画像は、変換前から変化がありました。
|
92
|
-
imarrの(PILで読み込んだ)データと比べると
|
93
|
+
ただ、imarrの(PILで読み込んだ正しい)データと比べると
|
93
94
|
CV_img_RGBの(openCVで読み込んでRGB変換した)データは違う。
|
95
|
+
(しかも見当違いに違う、e-43とは...)
|
94
96
|
```Python3
|
97
|
+
print(imarr[0][0])
|
98
|
+
#660
|
99
|
+
|
95
100
|
print(CV_im_RGB[0][0])
|
96
101
|
#6.32e-43
|
97
102
|
```
|
98
103
|
|
99
104
|
どうやったら同じように扱えるのかわかりません。。。。
|
100
|
-
tif画像処理むずし
|
105
|
+
tif画像処理むずし...
|
5
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -39,9 +39,9 @@
|
|
39
39
|
imarr[0][0]
|
40
40
|
#660
|
41
41
|
```
|
42
|
+
###追記(1),(2)あります
|
42
43
|
|
43
|
-
|
44
|
-
###追記
|
44
|
+
###追記(1)
|
45
45
|
Yhaya様のアドバイスを受けてopencvで読み込んでRGBに変換した後、描写することを試みました。
|
46
46
|
調べて見ると
|
47
47
|
`CV_img_RGB = CV_im[:, :, ::-1].copy()`
|
@@ -76,4 +76,25 @@
|
|
76
76
|
12 #変換
|
77
77
|
|
78
78
|
IndexError: too many indices for array
|
79
|
-
```
|
79
|
+
```
|
80
|
+
|
81
|
+
###追記(2)2018/10/26
|
82
|
+
|
83
|
+
> ------追記(1)より
|
84
|
+
`CV_img_RGB = CV_im[:, :, ::-1].copy()`
|
85
|
+
を挿入し、RGBにするとのことでしたが、エラーが出てしましました。
|
86
|
+
|
87
|
+
これは
|
88
|
+
`CV_img_RGB = CV_im[:, ::-1].copy()`
|
89
|
+
に変えることで、正常に動くようになりました。
|
90
|
+
`[:, :, ::-1]`この中の次元をCV_imと合わせる必要があったようです。
|
91
|
+
これによって表示された画像は、変換前から変化がありました。
|
92
|
+
imarrの(PILで読み込んだ)データと比べると
|
93
|
+
CV_img_RGBの(openCVで読み込んでRGB変換した)データは違う。
|
94
|
+
```Python3
|
95
|
+
print(CV_im_RGB[0][0])
|
96
|
+
#6.32e-43
|
97
|
+
```
|
98
|
+
|
99
|
+
どうやったら同じように扱えるのかわかりません。。。。
|
100
|
+
tif画像処理むずし……
|
4
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,6 +42,11 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
###追記
|
45
|
+
Yhaya様のアドバイスを受けてopencvで読み込んでRGBに変換した後、描写することを試みました。
|
46
|
+
調べて見ると
|
47
|
+
`CV_img_RGB = CV_im[:, :, ::-1].copy()`
|
48
|
+
を挿入し、RGBにするとのことでしたが、エラーが出てしましました。
|
49
|
+
どこかおかしなところがありますでしょうか。
|
45
50
|
|
46
51
|
```python3
|
47
52
|
%matplotlib inline
|
@@ -60,4 +65,15 @@
|
|
60
65
|
|
61
66
|
#描画
|
62
67
|
plt.imshow(CV2PIL_normalize)
|
68
|
+
```
|
69
|
+
```error
|
70
|
+
IndexError Traceback (most recent call last)
|
71
|
+
<ipython-input-108-5afa93a697bc> in <module>()
|
72
|
+
8
|
73
|
+
9 #BGRからRGBへ変換
|
74
|
+
---> 10 CV_img_RGB = CV_im[:, :, ::-1].copy()
|
75
|
+
11
|
76
|
+
12 #変換
|
77
|
+
|
78
|
+
IndexError: too many indices for array
|
63
79
|
```
|
3
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -38,4 +38,26 @@
|
|
38
38
|
#######データを確認##############
|
39
39
|
imarr[0][0]
|
40
40
|
#660
|
41
|
+
```
|
42
|
+
|
43
|
+
|
44
|
+
###追記
|
45
|
+
|
46
|
+
```python3
|
47
|
+
%matplotlib inline
|
48
|
+
import cv2
|
49
|
+
from PIL import Image
|
50
|
+
import numpy as np
|
51
|
+
from matplotlib import pyplot as plt
|
52
|
+
|
53
|
+
CV_im =cv2.imread('data.tiff',-1)
|
54
|
+
|
55
|
+
#BGRからRGBへ変換
|
56
|
+
CV_img_RGB = CV_im[:, :, ::-1].copy()
|
57
|
+
|
58
|
+
#変換
|
59
|
+
CV2PIL_normalize=Image.fromarray(CV_im_RGB)
|
60
|
+
|
61
|
+
#描画
|
62
|
+
plt.imshow(CV2PIL_normalize)
|
41
63
|
```
|
2
コードの変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,8 +29,7 @@
|
|
29
29
|
from PIL import Image
|
30
30
|
%matplotlib inline
|
31
31
|
|
32
|
-
path = "C:/Users/Uchiyama/Desktop/02_uchi_NiO_STO_015/02_uchi_NiO_STO_00015.tif"
|
33
|
-
im = Image.open(
|
32
|
+
im = Image.open('data.tif')
|
34
33
|
#im.show()
|
35
34
|
imarr = np.array(im)
|
36
35
|
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,8 +15,14 @@
|
|
15
15
|
img = cv2.imread('data.tif',-1)
|
16
16
|
|
17
17
|
plt.imshow(img)
|
18
|
+
|
19
|
+
#######データを確認##############
|
20
|
+
img[0][0]
|
21
|
+
#9.25e-43
|
18
22
|
```
|
19
23
|
|
24
|
+
|
25
|
+
|
20
26
|
```python3
|
21
27
|
import matplotlib.pyplot as plt
|
22
28
|
import numpy as np
|
@@ -29,4 +35,8 @@
|
|
29
35
|
imarr = np.array(im)
|
30
36
|
|
31
37
|
plt.imshow(imarr)
|
38
|
+
|
39
|
+
#######データを確認##############
|
40
|
+
imarr[0][0]
|
41
|
+
#660
|
32
42
|
```
|