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

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

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

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

Q&A

0回答

390閲覧

1つの画像内の「物体がある部分」と「ない部分(スペース)」を区分するコード

ques346

総合スコア47

Python

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

0グッド

0クリップ

投稿2021/06/26 04:16

編集2021/06/26 16:44

python

1from google.colab import drive 2drive.mount('/content/drive') 3 4import sys 5import numpy as np 6import matplotlib.pyplot as plt 7 8sys.path.append('/content/drive/My Drive') 9 10import ActivationFunction as AF 11 12from PIL import Image 13from IPython.display import display 14 15img = Image.open("drive/My Drive/mnist_dataset/box.jpg") 16img = img.resize((40, 40)) 17 18img = img.convert('L') 19img = img.point(lambda x: 1 if x > 128 else 0) 20img = np.asarray(img) 21 22img = np.asarray(img) 23 24np.set_printoptions(threshold=10000) 25 26imger = np.zeros((40,40)) 27 28# 両方の組み合わせ 29imger = np.zeros((40,40)) 30 31for i in range(39): 32 for j in range(36): 33 if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] == 0 and img[i][j+3] == 1 and img[i][j+4] == 1 and img[i][j+5] == 1): 34 print('黒黒黒白白白の右端の黒の部分の行目(縦)、列目(横)の順。', i, j+2) 35 k=i 36 m=1 37 while (img[k+m][j] == 0 and img[k+m][j+1] == 0 and img[k+m][j+2] == 0 and img[k+m][j+3] == 1 and img[k+m][j+4] == 1 and img[k+m][j+5] == 1): 38 m = m+1 39 print('黒黒黒白白白の右端の黒の部分(スタート)、縦連続最大値、縦の連続数が同じ数字の個数、縦の連続個数の順。', j+2, i, m) 40# 両方の組み合わせ

こんな感じのコードを作りました、具体的には、画像を取り込んで、リサイズ、2値化し、白が連続したあと黒が連続する、または黒が連続したあと白が連続する部分の行列インデックスを二次元リストに格納し、
その二次元リストを、更に(元の画像で言うと)ある行の連続部分(白連続したあと黒連続、またはその逆)が、その次行の連続部分の近くにあれば、「物体として連続している」としてまた、行列インデックスを表示(実際は記録)していくというコードを組みたいのですが、
この最後の部分で止まってます、なんかかなり面倒くさそうなのですが、良い方法はないのでしょうか。

□□■■■□□□□
■■■□□□□□□
□□□■■■□□□

こうなっていたら、
■の色のついている部分は、隣り合う行で繋がっていると見なせるので、1つの物体と見なす、という事です。

すいませんエラーが発覚しました、直し次第再度うpします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問