質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

423閲覧

エラーが出ないが、実行されないことに関して

seiya.atsumi

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/06/08 03:36

編集2022/06/08 03:49

このファイルでは、画像を取り込み、色ごとに識別して、該当の色の部分を大きさごとに抽出します。そしてメモに大きさ毎に抽出した数を記載するというプログラムです。(途中は省略しています。ファイルの読み込みなどに影響があると思っています)
ファイルにエラーは生じませんが、何も実行されないです。
どこを直せばよいのでしょうか?

Python

1import os 2import glob 3import cv2 4import numpy as np 5import scipy.ndimage as ndimage 6import matplotlib.pyplot as plt 7import math 8import pprint 9import tkinter 10from tkinter import filedialog 11 12#粒子のカウント 13def count(path): 14 img = cv2.imread(path) 15 hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 16 17 #色ごとに2値化 18 red1 = cv2.inRange(hsv,np.array([150, 0,125]),np.array([179,255,255])) 19 red2 = cv2.inRange(hsv,np.array([0, 0,125]),np.array([10,255,255])) 20 red = red1 + red2 21 blue = cv2.inRange(hsv,np.array([90, 0,125]),np.array([150,255,255])) 22 green = cv2.inRange(hsv,np.array([10, 0, 125]), np.array([90,255,255])) 23 #合成 24 all = green 25 #エラーが出るので保存、読み込み 26 cv2.imwrite('C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif',all) 27 all = cv2.imread("C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif") 28 29 #モルフォロジー 30 kernel = np.ones((2,2),np.uint8) 31 all = cv2.morphologyEx(all, cv2.MORPH_GRADIENT, kernel) 32 #ノイズの除去 33 #all = cv2.medianBlur(all, 3) 34 #all = cv2.cvtColor(all, cv2.COLOR_BGR2GRAY) 35 36 #fill holes 37 all = ndimage.binary_fill_holes(all).astype(int) * 255 38 39 #エラーが出るため保存、読み込みして改めて二値化 40 cv2.imwrite('C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif',all) 41 all = cv2.imread("C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif") 42 all = cv2.cvtColor(all, cv2.COLOR_BGR2GRAY) 43 ret,thresh = cv2.threshold(all,127,255,cv2.THRESH_BINARY) 44 45 46 47#省略 48 49 50 51 52#指定されたフォルダ内に新しくフォルダーを作成し、そのフォルダーに処理した画像を格納 53def serch(dir): 54 path_list = glob.glob(dir + '\*') 55 56 for i in path_list: 57 folder = i 58 file =os.path.basename(i) 59 new_folder = file + '_countver2' 60 name = os.path.join(*[dir, new_folder]) 61 print(i) 62 os.makedirs(name) 63 64 triming(folder,name) 65 bundel_count(name) 66 return 67 68#フォルダの指定 69#指定フォルダ-フォルダ-画像 の形 70serch("C:\\Users\\seiya\\OneDrive\\Desktop\\9gat\\mae") 71

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/06/08 03:46

このままではコードが読みづらいので、質問を編集し、</>(コードの挿入)ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
y_waiwai

2022/06/08 04:07

実行されないとは、なにがどう実行されないんでしょうか。
seiya.atsumi

2022/06/08 04:11

実行されていた時は 大きさごとの粒子の数がPython上に表示される+画像ファイルとは別にメモに大きさ毎の粒子数が記載されて新しいファイルを作成される というものだったのですが、Python上で1行空白があり、元の画面に戻るだけになってしまっています
TakaiY

2022/06/08 04:40

[というものだった]ということは、以前はどうさしていたのですよね? 動作していたときから内容を変更したのであれば、それが原因です。 そうでなければ、環境の問題です。 こころあたりはありますか。
seiya.atsumi

2022/06/08 04:43

PCを変えて、ファイルの指定場所を変更しただけです。 PCを変えて以降、できていないです
jbpb0

2022/08/16 13:06 編集

> serch("C:\\Users\\seiya\\OneDrive\\Desktop\\9gat\\mae") > ファイルの指定場所を変更しただけ 以前実行されてた時は、onedriveではない場所を指定してた、ということはありませんか? コード中の全てのパス指定をonedriveではない場所に変えたら、どうなりますでしょうか? (画像ファイルの置き場所も、コードの変更に合わせて当然変える) あと、 > cv2.imwrite('C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif',all) とか数ヶ所の「Desktop\\」と「all.tif」の間にスペースがありますが、そのスペースを全部削除してみてください
guest

回答1

0

serch関数に渡しているディレクトリが存在しなかったりその中にファイルがなかったりするとpath_listは空になります。

投稿2022/06/08 04:36

can110

総合スコア38266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/06/08 22:12

質問者さん 「def serch(dir):」の先頭を path_list = glob.glob(dir + '\*') ↓ 変更 print(dir) print("test1") path_list = glob.glob(dir + '\*') print("test2") print(path_list) と変更して実行したら、何て表示されますでしょうか? 最後の「print(path_list)」の表示は、ちゃんとされますでしょうか?
seiya.atsumi

2022/06/09 05:16 編集

test1 test2 [] は表示され、path_listは表示されませんでした
jbpb0

2022/08/16 12:45

> test1 test2 [] は表示され 「test1」の前に print(dir) の結果は表示されてませんか? > path_listは表示されませんでした 「path_list」が空だと、当然それ以降のコードの実行はうまく行きませんよね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問