opencvでdpiを上げるには?
opencvでOCRで読み込む前に、画像のdpiを上げる必要があります。
1.自分の画像のdpiがわからない 2. 画像のdpiを上げる方法がわからない。
Googleで検索してみると、ほとんどの回答が resize
を使うことを勧めています。
image = cv2.imread("source.png")
resized_image = cv2.resize(image, (100, 50)) #I need to change it to 300 DPI
リサイズは画像の大きさを変えるだけで、結局dpiを上げることはないのです、なぜなら使ってみて、フォトショップで確認するとdpiは変わっていなかったからです
この2つの質問について、どうかご教示ください。
opencvでどのように行うか?
正直なところ、私はdpiを300に変更する必要があるのですが、なぜ現在のdpiを知る必要があるのでしょうか?なぜなら、すでにdpi > 300
であれば、それを変換する必要はありません。
pythonでやってます。
12
3
dpiはJPEG/TIFF/PNGのヘッダーに記載されている数字に過ぎません。画像を印刷するまでは、世界とその犬には全く関係のないもので、画像の寸法がピクセル単位であれば、印刷の大きさが決まります。
画像処理中は関係ありません。興味があるのは、持っている画素数だけです。画質や情報量を決定するのは画素数です。
OpenCVで設定できるとは思えません。ImageMagickではターミナルでこのように設定することができます。
で確認できます。
ターミナルで
exiftool
を使えば同様のことができます -exiftool
は "just" 1 つの Perl スクリプトなので ImageMagick よりもはるかに小さく、メンテナンスが簡単なことに注意してください。EXIF IFD1 情報から画像の解像度を抽出する。
画像から "Resolution"という単語を含む名前のタグをすべて抽出します。
image.jpg
に X/Y 解像度(密度)を設定します。ここで、私の答えの冒頭の意味を少し実演してみましょう・・・。
ImageMagick** を使って、dpi 情報のない 1024x768 の画像を作成します。
では、それを検証してみましょう。
今度はdpiを変更し、dpiの単位を設定し、再度検証してください。
古い記事ですが、テッセラクトは文字の高さを30ピクセル程度にするとより良く動作することがテストされ、判明していますことをお伝えしたいと思います。以下のリンクからご確認ください。
DPIは、モニタ、スキャナ、カメラなどのグラフィックデバイスに継承されるプロパティです。例えば、画像をスキャンする場合、より良い品質の画像を得たいので、スキャナオプションでDPI値を高く設定するとします。より良いDPIオプションがない場合、より多くのスキャン解像度をサポートする、より良いスキャナを購入する必要があります。100 000 DPI]1を達成できるデバイス/方法があります。