2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

マイナンバーカード申請が拒否られたのでopencv使ってちょろまかす

Last updated at Posted at 2020-04-21

切れ散らかしました。

それは先ほど例の10万円支給を受け取るためにマイナンバーカードのウェブ申請で顔写真をあげようとした時のこと。

証明写真機でとってきた写真が「ピクセル数が足りない」と言われてアップデートできないわけです。

「これはわざわざ仕様を満たす証明写真機を探しに周らないとあかんのか?」

「いや、ちょっとピクセル数が足りないだけならほんのちょっと画像をいじれば通せるんじゃないか?

ピクセル数をちょろまかそう

この画像をいじって行きます。
b_img.jpg

とりあえず読み込む。


import cv2
import numpy as np
import matplotlib.pyplot as plt

filename = 'image.png'

# 読み込み
img = cv2.imread(filename)
rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

rgb.shapeで証明写真のピクセル数を見てみると(600, 450, 3)であり、要求される最低ピクセル数は600 x 480であるため横方向に30pxの余白をつけてあげればいいことが分かります。

余白の色は白黒だと怒られそうなので背景色に合わせておきます。


back_color = rgb[0,0] # (x:0,y:0)のピクセルを背景色として取得 
extension = np.full((600, 15, 3), back_color) # 背景色で塗った(縦600,横15,RGBの3チャンネル)の余白を作る
processed_img = np.hstack((extension, rgb, extension)) # 余白を元画像の左右にくっつける

最後に、拡張子は仕様に合わせてjpegで保存。


bgr = cv2.cvtColor(processed_img, cv2.COLOR_RGB2BGR)
cv2.imwrite('processed.jpg', bgr)

パッと見たところ気に違和感ないですね。
a_image.jpg

申請は通ったのか

ひとまずweb上でのアップロードは通りました。

この後に人手でチェックが入るでしょうから、
そこでこの左右の余白が許されたのかは分かり次第追記します。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?