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

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

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

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

受付中

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

seiya.atsumi
seiya.atsumi

総合スコア0

Python

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

1回答

0評価

0クリップ

215閲覧

投稿2022/06/08 03:36

編集2022/08/16 22:06

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

Python

import os import glob import cv2 import numpy as np import scipy.ndimage as ndimage import matplotlib.pyplot as plt import math import pprint import tkinter from tkinter import filedialog #粒子のカウント def count(path): img = cv2.imread(path) hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) #色ごとに2値化 red1 = cv2.inRange(hsv,np.array([150, 0,125]),np.array([179,255,255])) red2 = cv2.inRange(hsv,np.array([0, 0,125]),np.array([10,255,255])) red = red1 + red2 blue = cv2.inRange(hsv,np.array([90, 0,125]),np.array([150,255,255])) green = cv2.inRange(hsv,np.array([10, 0, 125]), np.array([90,255,255])) #合成 all = green #エラーが出るので保存、読み込み cv2.imwrite('C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif',all) all = cv2.imread("C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif") #モルフォロジー kernel = np.ones((2,2),np.uint8) all = cv2.morphologyEx(all, cv2.MORPH_GRADIENT, kernel) #ノイズの除去 #all = cv2.medianBlur(all, 3) #all = cv2.cvtColor(all, cv2.COLOR_BGR2GRAY) #fill holes all = ndimage.binary_fill_holes(all).astype(int) * 255 #エラーが出るため保存、読み込みして改めて二値化 cv2.imwrite('C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif',all) all = cv2.imread("C:\\Users\\seiya\\OneDrive\\Desktop\\ all.tif") all = cv2.cvtColor(all, cv2.COLOR_BGR2GRAY) ret,thresh = cv2.threshold(all,127,255,cv2.THRESH_BINARY) #省略 #指定されたフォルダ内に新しくフォルダーを作成し、そのフォルダーに処理した画像を格納 def serch(dir): path_list = glob.glob(dir + '\*') for i in path_list: folder = i file =os.path.basename(i) new_folder = file + '_countver2' name = os.path.join(*[dir, new_folder]) print(i) os.makedirs(name) triming(folder,name) bundel_count(name) return #フォルダの指定 #指定フォルダ-フォルダ-画像 の形 serch("C:\\Users\\seiya\\OneDrive\\Desktop\\9gat\\mae")

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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」の間にスペースがありますが、そのスペースを全部削除してみてください

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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