スポンサーリンク
-->今回に至っては既に0時を回っている。
いや、仕方なかったんすよ。これはほんとう。
なんでかといいますとね、使ってるCMSの投稿編集機能がいかれちまいましてね、なんと日本語入力ができなくなっちまったんすよ。
まあ英語で書いても良かったですけどね(書けない)
今回は画像処理のお話
といっても背景を透過するだけなんで、ハードルはかなり低いはず!
実際にやっていきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
import sys, cv2, numpy as np args = sys.argv argc = len(sys.argv) if (argc != 2): print('Usage: python haikeiTouka.py filename') quit() img = cv2.imread(args[1]) rows, cols = img.shape[0:2] sheet = np.zeros((rows, cols, 4), np.uint8) cv2.imshow('motoNoGazou', img) for col in range(cols): for row in range(rows): sheet[row][col][0:3] = img[row, col][0:3] if sum(img[row, col]) <= 765: sheet[row][col][3] = 255 cv2.imshow('kakouGo', sheet) cv2.imwrite('kakouGo.png', sheet) cv2.waitKey(0) cv2.destroyAllWindows() |
上記のコードを使えば、無事に画像の白い部分を透過することが可能です。
。。。
可能なはずです。。
実際にやってみた
がびがびだ。。
なんということでしょう。。
まあいっか。
よくない
ということでもうすこし「白」であることの判定を緩めてみましょう。
そもそも、上のコードでは、for文を回してピクセル一つ一つを確認し、三原色のパラメータの全てがMAXなら(MAXは255)白と判定して透過してるんですね。一応コメントを添えたVerを以下に追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import sys, cv2, numpy as np # システムモジュールを使ってコマンドライン引数から画像のパスをいただく args = sys.argv argc = len(sys.argv) # フォーマットが違った場合アラート出して抜ける if (argc != 2): print('Usage: python haikeiTouka.py filename') quit() # 受け取ったパスからOpen-CVを使って画像の読み込み img = cv2.imread(args[1]) # shapeパラメータから画素の行、列数を取得 rows, cols = img.shape[0:2] # Numpyで値0の三次元配列を作成、4は三原色とアルファ値(透明度)を表す sheet = np.zeros((rows, cols, 4), np.uint8) # 元の画像を表示しておく cv2.imshow('motoNoGazou', img) # 列、行に対してFor文回す for col in range(cols): for row in range(rows): # 三原色はそんままコピー sheet[row][col][0:3] = img[row, col][0:3] # もしも全ての三原色のパラメータが255(MAX)以下なら完全な白ではないので透明にしない。 if sum(img[row, col]) <= 765: # アルファ値は0〜255で小さいほど透明度が上がる sheet[row][col][3] = 255 # 加工後の画像を表示、保存 cv2.imshow('kakouGo', sheet) cv2.imwrite('kakouGo.png', sheet) # キー入力を待つ。入力が終わり次第終了。 cv2.waitKey(0) cv2.destroyAllWindows() |
こんな感じです。なんで、透明度の判定を765以下から、730以下くらいに下げてみましょう。
結果は以下です。
うーんまだまだかなあ。
じゃあもう少し下げてみましょう。
これが悲劇の始まりだった
結果です。
死んだ。。
完全に骨になってる。。
ホラーですね。。
結局
まあ無難なとこでしょう。
ついでにファビコンとかアップルアイコンにも登録しとこ。
と思ったのですが、、
うわー。。
最終的に元に戻しましたとさ。。完全に時間が溶けた。。
p.s.
かなり荒い透過でしたが、ファビコンにしたら目立たなかったので採用しました。くじらが浮いてる感じでかわいい。
コメント
コメントはありません。