サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC25
qiita.com/pashango2
PIL/Pillowで色を置換する場合、簡単に思いつくのはImage.getpixel/Image.putpixelを使う方法だ。 しかしながら、Image.getpixel/Image.putpixelは1枚の画像を処理するのに数秒かかってしまうほど遅い、非常に遅い。 numpyを使って高速に置換する方法もあるが、色の置換ごときに依存モジュールを増やすのも馬鹿らしい。 そこでシンプルにPIL/Pillowのみで高速に色を置換する方法を考えた。 サンプルとして以下の画像の服の色(255, 204, 0)を(48,255,48)に置換してみよう。 なお画像はRGB24ビットでアルファなし、コードはpython2で記述する。 画像を色ごとに分解する まず、Image.splitを使い画像を各色ごとのバンドに分解する。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Pythonでバイナリを扱う時のTipsです。 Pythonでバイナリを扱う方法は2つあります、structモジュールを使う方法とctypes.Structureクラスを使う方法です。 基本的にstructモジュールは数バイトのバイナリを扱いたい時、それ以上のバイト数やC/C++と連携したい時にctypes.Structureクラスを使います。 structモジュール 例としてPNGファイルのバイナリを読んでみます、PNGファイルは頭の8バイトはヘッダで決め打ちです。 9バイト目から18バイトのデータはIHDR領域(正確にはIHDRの一部)でイメージの縦横サイズとビット深度、カラーモードが格納されています。
マニュアルの機能一覧を意訳してみました。 'test*.ipynb'ファイルをディスカバリします Notebookの各セルが単体テストとして実行されます(assertを使うだけ) 各セルの最初の行のコメント(docstring)は、テスト名または関数名として扱われます。 docstringに'fixture*'または'setup*'とすれば、それぞれの単体テストの前に実行されます docstringに'SKIPCI'と書けばTravis-CIでのテストはスキップされます(CI環境変数が定義されているかどうかを確認) IPython Notebookカーネルはテスト後にリスタートされます テスト時のワーキングフォルダは、.ipynbファイルのローカルです 訳に間違いがありましたら、ご指摘をお願いします。 あとは普通にpy.test -vを実行するだけで、Notebookも含んだテストをしてく
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 私の記事の「最強のPython開発環境 PyCharmのすゝめ」が、「いいね」が200超えましたので、続きを書こうかと思います。 とはいえ、便利な機能はあらかた紹介済みですので、私なりのPyCharmの運用ルールを書いてみたいと思います。 これはあくまで、私個人で実践している自分ルールですので、「こんな風にやってるんだ」くらいに読んでください。 静的解析のインスペクション項目は全てON PyCharmはリアルタイムでコードを静的解析して、コードのダメな部分を注意してくれます。 しかし、実際にコードを書いていると「ちょっと神経質かな〜?」
Pythonの画像ライブラリ「pillow」を使って、画像のカラーハーフトーン処理を実装しました。 写真をアメコミ調に変換したいときに、スクリーントーンのような陰影を再現したいときなどに使います。 ハーフトーンは、アメコミのような画風にしたり、ポップなデザインによく使われる効果です。 カラーハーフトーンはCMYKに色分解し、角度をずらしたハーフトーンを重ねる処理です。 カラーの印刷物のような効果になります。 当初は簡単に実装できるだろうとタカをくくっていたのですが、意外と面倒な処理でした。日本語の技術資料はほとんどなかったため、共有&精度向上のためにメモしておきます。 ハーフトーン処理の概要 ハーフトーンは、画像をある角度で配置された単色ドットでグラデーションを擬似的に表現するものです。 角度45°で、pitchはドットの間隔、rはドットの最大半径とすると、下図のようになります。 ここで問
きっかけは、自分が過去に書いたプログラムを整理していると、ベジェ曲線のカーブフィッティング(曲線あてはめ)をするJavaScriptが出てきて、懐かしいなーと思って読んでみたのですが数式が難しすぎて全く理解できませんでした。 何でこんな謎の数式で近似できるねん、昔の俺すげーな。 どうやら最小二乗法を使って近似していたようです、復習がてらPythonで説明したいと思います。 参考書をひっぱりだして勉強しなおしました、ちなみに参考文献は金谷健一先生の「これなら分かる最適化数学―基礎原理から計算手法まで」です。非常に解りやすく解説されている本でオススメです。 最小二乗法とは何なのか? 最小二乗法とは、複雑なデータや関数を近似する代表的な手法で、データ解析における最も重要な基礎となります。 適用範囲は非常に広く、微分可能であればどんな関数も近似が可能という実用性と美しさを兼ね備えた手法です。 例え
import nbformat nb = nbformat.v4.new_notebook() title = "# タイトル" code = """ %matplotlib inline from sympy import * # to print with mathjax on jupyter notebook init_printing() """ nb["cells"] = [ nbformat.v4.new_markdown_cell(title), nbformat.v4.new_code_cell(code) ] with open("output.ipynb", "w") as f: nbformat.write(nb, f) これで、色々便利なことができそうですね。 PyCharmでカスタムした.ipynbを生成する PyCharmはPythonの統合開発環境(IDE)で
Sphinxは非常に素晴らしいドキュメント生成ツールです。 この素晴らしいツールを社内で流行らせようと頑張ったのですが、誰も使ってくれません。 みんながどんなタイミングで、Sphinxを諦めてしまうのか振り返ってみました。 reStructuredTextがわからないし、覚えたくもない デフォルトのテーマが見にくいからやめる sphinx-quickstartの設問が多すぎて途中でやめる ドキュメント作成のたびにconf.pyを編集するのが面倒なので使わなくなる ドキュメント確認のたびにmake htmlが面倒なので使わなくなる 最近はJupyterでドキュメント書くので・・・ こんなところでしょうか。 たぶん、Sphinxがいまいち流行らないのも、ここら辺が理由が大きいんじゃないかと思います。 Markdownを使う 残念ながらマークアップ言語の主流はreStructuredTextでは
PIL/Pillowはコンパクトで高速なPython用の画像ライブラリです。 よく使う処理をまとめました(随時更新) PILとPillowの違い 基本的にPILを使う理由はありません、Pillowの方がリサイズフィルタのバグフィックスがされており高品質です。 Pillowの速度について Pillowは非常に高速にチューニングされており、同様なライブラリであるImageMagickよりも常に高速に動作します。 ただし、getpixel/putpixelは非常に低速です、画像生成以外には使わないようにしましょう。 更に高速なpillow-simdもあります。概ねオリジナルのPillowの4〜5倍の速度が出るようです。 pillow-simd https://github.com/uploadcare/pillow-simd 参考 Imageモード一覧 モード 説明
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Cythonとは? Pythonは処理速度は決して早くない、むしろ遅い部類である。 そこで、C/C++に変換することにより高速化しようというのがCythonである。 低級言語のC/C++(昔は高級言語だったが、現在は低級言語といって良いだろう)に変換してネイティブコンパイルするのだから、速いに決まっている。 この記事の目的 「Cythonは難しい」、**「CythonはC/C++の知識が必要」という印象があるだろう。答えは「Yes」**である。 しかし、その答えはCythonをフルに使いこなす事が前提である。 実はCythonは、C/C
最強のPython開発環境 PyCharmのすゝめという記事で、PyCharmがいかに最強の開発環境であるかを紹介した。 PySide/pyQtの開発においても、やはりPyCharmが最強である。 (記事はPySideを対象として書いているが、PyQtに置き換え可能) uiファイルを自動的にpyファイルに変換 QtDesignerを使用してuiファイルを作成する場合、手動または半自動で変換している方が多いと思う。 以前にPySideでuiファイルが更新されたらpyファイルに自動変換するという記事を書いたが、PyCharmならそれ単体でuiファイルを監視して自動で変換してくれるのだ。 File Watchersプラグインをインストールする ファイル監視にはFile Watchersプラグインのインストールが必要だ。 Settingsダイアログ(Ctrl+Alt+S)を開き「Plugin」を選
私はPython歴はかれこれ7年程になり、PyScripterやVimなど色々な開発環境を変遷してきた。 その中でPyCharmが最強のPython開発環境であると断言する。 PyCharm Home Page 開発はIntelliJ IDEAのJetBrainsで、最近はGo言語用IDEのGoglandを発表している。 動作環境はWindows/OS X/Linuxのマルチプラットフォームである。 PyCharmは無償版と有償版があるが、普通の開発ならば無償版で充分すぎるほど機能が備わっている。 PyCharmがいかに便利であるか紹介してみよう。 リアルタイムのコードチェックと修正機能 PyCharmはリアルタイムにコードをチェック(PyFlakes使用)してくれるが、Vimでも同様の事ができるので目新しい事ではない。 PyCharmの素晴らしい所は、警告個所を適切に修正してくれる機能が
#! usr/bin/python # -*- coding: utf-8 -*- from __future__ import unicode_literals, print_function, absolute_import import sys def say_args(kind, data_list): print("kind:", kind, " data:", data_list) if __name__ == '__main__': args = sys.argv[1:] assert args kind = args[0].lower() data_list = [x.lower() for x in args[1:]] say_args(kind, data_list) こういうコードを書いている人、先生、怒らないから挙手しなさい。 こういうコードはグローバルスコープの名
このページを最初にブックマークしてみませんか?
『@pashango2のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く