私はA4文字の画像を取り込んで、それぞれの文字の周りにバウンディングボックスを描画するPythonコードをいくつか持っています。バウンディングボックスを画像として保存
各バウンディングボックスをイメージとして保存する方法を知りたいので、基本的にはそれを検出して保存するすべての文字を取ります。ここでは20×20
(同様の質問がhereを頼まれたが、答えは非常に曖昧で、私のコードでそれを実装する方法がわからない)
にリサイズ.PNGとして好ましい は私のコードです:私は十分に明確ではないよ場合
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from scipy.misc import imread,imresize
from skimage.segmentation import clear_border
from skimage.morphology import label
from skimage.measure import regionprops
image = imread('./adobe.png',1)
#apply threshold in order to make the image binary
bw = image < 120
# remove artifacts connected to image border
cleared = bw.copy()
clear_border(cleared)
# label image regions
label_image = label(cleared,neighbors=8)
borders = np.logical_xor(bw, cleared)
label_image[borders] = -1
print label_image.max()
fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(6, 6))
ax.imshow(bw, cmap='jet')
for region in regionprops(label_image, ['Area', 'BoundingBox']):
# skip small images
if region['Area'] > 50:
# draw rectangle around segmented coins
minr, minc, maxr, maxc = region['BoundingBox']
rect = mpatches.Rectangle((minc, minr), maxc - minc, maxr - minr,
fill=False, edgecolor='red', linewidth=2)
ax.add_patch(rect)
plt.show()
、コメントと私は私の最高を詳しく説明してみてくださいよ、
はあなた
ありがとうください。
こんにちは、ありがとう、私はあなたの私のループで示唆されたコードの2つの最初の行を置いた、今は保存画像が保存する領域が間違っています。私は手紙をいくつか手に入れましたが、部分的で空白のスペースもたくさん保存されました。あなたのコードは正しいと思いますが、正確な境界線を[minc:maxc、minr:maxr]という形式に変換する方法はわかりません。 – Zack
もちろん、その行、そして列。私は例でそれを修正した。適切なテスト画像を提供できる場合は、テストすることができます(コードスニペットが完成していれば)。 – user3736966