SlideShare a Scribd company logo
1 of 32
Download to read offline
取り込んだネガ画像の⾊を変換する
Pythonスクリプトを書いてみた
in ⼩江⼾らぐ2020年7⽉のオフな集まり
Иосиф Такакура (Iosif Takakura)
@huideyeren
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 1
はじめに
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 2
この発表について
この発表は2020年2⽉に発表した「scikit-imageを使ってフィルムスキャナで取り込ん
だネガ画像をポジ化する」の続きです。
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 3
お前誰よ
1981年⽣まれの就職氷河期世代。
普段は横浜でWindowsでC#とSQLを書いているエンジニア
社会⼈になってプログラミングを始めた
こだわりの強いうっかりさんな
どこかカウボーイエンジニアの気がある
いわゆる発達障害(ADHD & ⾃閉スペクトラム障害)当事者
でも「やさしさ」は忘れたくない
いろいろと「オタク」
評論サークル「恢徳堂」主筆
TRPG のようなWeb ゲームでシナリオを書いていたりもします
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 4
近況報告
仕事:無事納品終わりました
Windows PC ⾃作しました
もちろんWSL2 使ってます
テレワークは難しい模様です
個⼈情報保護法と就業規則との兼ね合いで無理
PyCon JP 2020 のスタッフもやってました
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 5
本題に⼊るその前に
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 6
銀塩写真にはまりました
きっかけ:知り合いがDiscordの名前で「コダック」と付けてて……
知り合いが付けてたのはもちろんポケモンの⽅
そこからロチェスターの巨⼈を連想
気がつくと⾃家現像まで⾏うように
さらにオールドレンズ沼にもはまる
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 7
私のカメラ
フィルムカメラ
Canon EOS Kiss III
HOLGA 135BC
Nikomat FTN
⻑い間眠っててカビだらけ
デジタルカメラ
PENTAX Q10
Canon EOS Kiss Digital N
故障中
iPhone 7 Plus
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 8
現像⾵景
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 9
さて、ここからが本題
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 10
前回のまとめ
1枚1枚⾊補正するのしんどい
Pythonで⾊変換したいのでスクリプトを書いた
⽩⿊の⾊反転はできた
グレースケール化もできた
GitHubで公開した
https://github.com/huideyeren/darkroom
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 11
今回できたこと
カラーの⾊補正に対応!!
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 12
といっても……
Shunsuke Aihara⽒のcolorcorrect: ⾊恒常性に基づいた⾃動⾊補正ライブラリを
組み込んだだけ
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 13
colorcorrectとは?
褪⾊画像や、⽩⾊光源以外の光源化で撮影された画像、ホワイトバランスが狂っ
ている画像等の⾊を補正するpythonライブラリ
⼈間の⾊知覚における⾊恒常性の複数の仮説モデルの実装
多くは灰⾊仮説(Gray World Assumption)に基づいている
⽩⾊光原下において視野内のすべての⾊、画像の場合は、全ピクセルの
RGB値の平均を取ると灰⾊になるという仮説
基本的に、パラメータなどをいじること無く⾊の補正が可能
Python2.6以上で動作
Python 3.8.5でも動作
https://pypi.org/project/colorcorrect/
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 14
どういうメカニズムか
特殊な光源下の画像や、褪⾊して⾊が失われてしまった画像のRGB値の平均値は
灰⾊とは乖離している
ずれを補正すると元の⾊を推定できる
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 15
元の実装の参考⽂献
1. D. Nikitenko, M. Wirth and K. Trudel, "Applicability Of White-Balancing Algorithms
to Restoring Faded Colour Slides: An Empirical Evaluation.", Journal of
Multimedia, vol. 3, no. 5, 2008.
2. E.Y. Lam, "Combining gray world and retinex theory for automatic white balance in
digital photography.",in Proc ISCE, 2005.
3. HK. Lam, OC. Au and CW. Wong, "Automatic white balancing using luminance
component and standard deviation of RGB components.", in Proc. ICASSP, 2004.
4. A. Rizzi, C. Gatta and D. Marini, "A new algorithm for unsupervised global and
local color correction.", Pattern Recognition Letters, vol. 24, no. 11, 2003.
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 16
採⽤した⾊補正のアルゴリズム
1. gray world + stretch
早いが補正結果がちょっと微妙なものもある
単純な褪⾊に強いgray worldと⻘や⾚系の変⾊に強いstretchの組み合わせ
2. automatic color equalization
⼤体の画像で⾮常に良い補正画像
すごく時間がかかる
214枚で2時間以上……
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 17
⾊の⽐較
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 18
実際の⾊変換の実例
これからの4枚の写真は全て同じネガを取り込んで加⼯したものです。
ただし1枚のみカメラはスズキジョイナス店で取り込んだものが含まれます。
撮影した写真のデータ
カメラ: Canon EOS Kiss III
レンズ: Induster-61 L/Z 50mm
フィルム: フジカラー記録⽤100
現像: カメラはスズキジョイナス店
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 19
ネガ画像
※ フィルムスキャナで⾊補正がかかっています
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 20
カメラはスズキジョイナス店で取り込んだもの
※ トリミングされていません
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 21
automatic color equalizationで⾊補正したもの
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 22
gray worldとstretchで⾊補正したもの
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 23
最後に作例
※ ⾊補正はautomatic color equalizationを選択
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 24
七五三のお宮参り
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 25
韓国・ロッテワールドにて
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 26
名鉄⽝⼭線・⽝⼭橋にて
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 27
中国・フフホト駅にて
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 28
札沼線・⽯狩⽉形駅にて
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 29
渋⾕のスクランブル交差点
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 30
愛⽝・そらちゃんの⽣前の写真
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 31
ご清聴ありがとうございました
次の発表にご期待ください!
取り込んだネガ画像の⾊を変換するPythonスクリプトを書いてみた
この作品はクリエイティブ・コモンズ表⽰4.0 国際ライセンスの下に提供されています。 32

More Related Content

What's hot

Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングRansui Iso
 
IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活敦志 金谷
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
PyAutoGUI等Pythonライブラリによる自動化支援
PyAutoGUI等Pythonライブラリによる自動化支援PyAutoGUI等Pythonライブラリによる自動化支援
PyAutoGUI等Pythonライブラリによる自動化支援H Iseri
 
各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法Katsuhiro Morishita
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況Akihiro Suda
 

What's hot (10)

React vtecx20170822
React vtecx20170822React vtecx20170822
React vtecx20170822
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活IntelliJ IDEAで快適なPython生活
IntelliJ IDEAで快適なPython生活
 
Moby Project
Moby ProjectMoby Project
Moby Project
 
Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
Pythonでゲーム作る
Pythonでゲーム作るPythonでゲーム作る
Pythonでゲーム作る
 
PyAutoGUI等Pythonライブラリによる自動化支援
PyAutoGUI等Pythonライブラリによる自動化支援PyAutoGUI等Pythonライブラリによる自動化支援
PyAutoGUI等Pythonライブラリによる自動化支援
 
各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法各OSにおいて、OpenCVをpythonから使う方法
各OSにおいて、OpenCVをpythonから使う方法
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
 

Similar to 取り込んだネガ画像の色を変換する Python スクリプトを書いてみた

Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Masato Fujitake
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpTakeshi Komiya
 
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfesExcel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfesTakeshi Komiya
 
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiagTakeshi Komiya
 
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014Yoshiki Shibukawa
 
最近つくった Sphinx 拡張の話 2012.08 #pyfes
最近つくった Sphinx 拡張の話 2012.08 #pyfes最近つくった Sphinx 拡張の話 2012.08 #pyfes
最近つくった Sphinx 拡張の話 2012.08 #pyfesTakeshi Komiya
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
Kivyでゲーム
KivyでゲームKivyでゲーム
KivyでゲームJun Okazaki
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜSatoshi Yazawa
 

Similar to 取り込んだネガ画像の色を変換する Python スクリプトを書いてみた (10)

Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
 
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfesExcel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
Excel 方眼紙撲滅委員会 活動報告 2012.08 #pyfes
 
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
 
Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014Oktavia全文検索エンジン - SphinxCon JP 2014
Oktavia全文検索エンジン - SphinxCon JP 2014
 
最近つくった Sphinx 拡張の話 2012.08 #pyfes
最近つくった Sphinx 拡張の話 2012.08 #pyfes最近つくった Sphinx 拡張の話 2012.08 #pyfes
最近つくった Sphinx 拡張の話 2012.08 #pyfes
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
Kivyでゲーム
KivyでゲームKivyでゲーム
Kivyでゲーム
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜ
 

More from Iosif Takakura

Marp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドMarp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドIosif Takakura
 
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化するscikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化するIosif Takakura
 
Django 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみるDjango 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみるIosif Takakura
 
Zappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみるZappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみるIosif Takakura
 
Django と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMSDjango と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMSIosif Takakura
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントIosif Takakura
 
DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!Iosif Takakura
 
技術的負債との戦い方
技術的負債との戦い方技術的負債との戦い方
技術的負債との戦い方Iosif Takakura
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみたIosif Takakura
 
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたC#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたIosif Takakura
 
Sphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたSphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたIosif Takakura
 
ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日Iosif Takakura
 
Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうIosif Takakura
 

More from Iosif Takakura (13)

Marp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライドMarp for VS Code で作る PowerPoint スライド
Marp for VS Code で作る PowerPoint スライド
 
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化するscikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
scikit-image でフィルムスキャナで取り込んだネガ画像をポジ化する
 
Django 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみるDjango 製 CMS Wagtail で Blog を作ってみる
Django 製 CMS Wagtail で Blog を作ってみる
 
Zappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみるZappa で Serverless CMS を作ってみる
Zappa で Serverless CMS を作ってみる
 
Django と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMSDjango と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMS
 
Sphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメントSphinxでまとめる多言語環境APIドキュメント
Sphinxでまとめる多言語環境APIドキュメント
 
DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!DocFXで脱Excel方眼紙!
DocFXで脱Excel方眼紙!
 
技術的負債との戦い方
技術的負債との戦い方技術的負債との戦い方
技術的負債との戦い方
 
社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた社内のマニュアルをSphinxで作ってみた
社内のマニュアルをSphinxで作ってみた
 
C#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみたC#初心者がxamarinに手を出してみた
C#初心者がxamarinに手を出してみた
 
Sphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみたSphinxで同人誌を書いてみた
Sphinxで同人誌を書いてみた
 
ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日ようこそ先輩 - 2014年8月2日
ようこそ先輩 - 2014年8月2日
 
Osuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょうOsuncが終わったら帰りは警察署に行きましょう
Osuncが終わったら帰りは警察署に行きましょう
 

取り込んだネガ画像の色を変換する Python スクリプトを書いてみた