[解決済み] 画像を半分に分割しようとすると、「tile cannot extend outside image」エラーが発生します。
2022-02-07 02:28:08
質問内容
私のプログラムでは、画像を取り込んで縦方向にn個のセクションに分割し、セクションを個々のpngファイルとして保存することになっています。2つのセクションの場合、以下のようになるはずです。
画像の前半は正しく保存されるのですが、後半を切り取ろうとすると次のようなエラーが発生します。
SystemError: tile cannot extend outside image
私が扱っている画像は
- 横幅:1180px
- 高さ:842px
クロップするために計算される矩形は。
-
(0.0, 0, 590.0, 842)
- これは正常に動作します -
(590.0, 0, 590.0, 842)
- プログラムがクラッシュします
質問です。なぜこのサブ矩形は範囲外なのでしょうか、また、どうすれば写真のように画像を適切に半分にスライスできるのでしょうか。
from PIL import Image, ImageFilter
im = Image.open("image.png")
width, height = im.size
numberOfSplits = 2
splitDist = width / numberOfSplits #how many pixels each crop should be in width
print(width, height) #prints 1180, 842
for i in range(0, numberOfSplits):
x = splitDist * i
y = 0
w = splitDist
h = height
print(x, y, w, h)
#first run through prints 0.0, 0, 590.0, 842
#second run through prints 590.0, 0, 590.0, 842 then crashes
croppedImg = im.crop((x,y,w,h)) #crop the rectangle into my x,y,w,h
croppedImg.save("images\\new-img" + str(i) + ".png") #save to file
解決方法は?
ボックスの座標(x, y, w, h)はすべて画像の左上隅から計測されています。
ということで、ボックスの座標は (x, y, w+x, h+y) となるはずです。コードを以下のように変更します。
for i in range(0, numberOfSplits):
x = splitDist * i
y = 0
w = splitDist+x
h = height+y
関連
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Python 入出力と高次代入の基礎知識
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み】ValueError: xとyは同じサイズでなければならない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み】NameError: 名前 'self' が定義されていません。
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?