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

質問編集履歴

1

よく分からないのですが、送信したものと別のものになっていたので編集しました。

2021/01/15 17:52

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,14 +1,15 @@
1
1
  ```python
2
2
  import cv2 # OpenCVのインポート
3
3
 
4
- os.chdir('C://Users//matsumoto//Desktop//cv//ok')
4
+ os.chdir('C://Users//username//Desktop//cv//ok')
5
5
 
6
- img = cv2.imread('20.png') # 画像の読み出し
6
+ img = cv2.imread('1.png') # 画像の読み出し
7
7
  img = cv2.inRange(img, (120, 21, 145), (214,152,204))
8
8
 
9
- cv2.imwrite('21nitika.png',img) # 画像の保存
9
+ cv2.imwrite('1nitika.png',img) # 画像の保存
10
10
  ```
11
11
 
12
+ 上のようなプログラムを作りました、1枚の画像を二値化します、これを、
12
13
 
13
14
  ```python
14
15
  import os
@@ -24,4 +25,27 @@
24
25
  img_resize = img.resize((width,height))
25
26
  fname, fext = os.path.splitext(f)
26
27
  img_resize.save(fname + '_640x480' + fext)
27
- ```
28
+ ```
29
+
30
+ 上のプログラムと組み合わせ、複数画像を二値化したいのですが、
31
+
32
+ ```python
33
+ import os
34
+ import glob
35
+ from PIL import Image
36
+
37
+ img_files = glob.glob('*.png')
38
+
39
+ for f in img_files:
40
+ img = Image.open(f)
41
+ img_resize = cv2.inRange(img, (120, 21, 145), (214,152,204))
42
+ fname, fext = os.path.splitext(f)
43
+ img_resize.save(fname + '_640x480' + fext)
44
+ ```
45
+
46
+ このように書いても、
47
+ Traceback (most recent call last):
48
+ File "<stdin>", line 3, in <module>
49
+ TypeError: Expected Ptr<cv::UMat> for argument 'src'
50
+ というエラーが出ます、たぶんcv2を使うあたりでおかしくなっているのですが、
51
+ どう書けばよいのかわかりません、どのようにするとうまくいくでしょうか。