HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0807
YSRcvsaveで品質0でのjpg保存が出来ない件について5解決


YSR

リンク

2011/8/7(Sun) 03:39:02|NO.40426

コードを組んでいたら妙なことに気がついた。
一回以下のコードで回してみて欲しい。

#include "hspcv.as" dialog "*",16 if stat!1 :end sdim file,256 :file=getpath(refstr,8+1) if ext=".gif" { buffer 1 picload refstr px=ginfo(12) :py=ginfo(13) cvbuffer 0,px,py cvputimg 0 gsel 0 } else { cvload refstr,0 if stat!0 :assert } dialog "*",17 if stat!1 :end for k,0,101 title str(k) cvsave getpath(refstr,32)+file+"("+strf("%03d",k)+").jpg",0,k next end
要するに読み込んだ画像に対して品質0〜100のjpgで
指定したフォルダに保存するコードなのだが、
なぜか品質0なはずのファイル([元画像ファイル名](000).jpg)の画質が妙に良い。
調べてみると品質はなんと95……。
つまりヘルプで言うパラメータp2が「0」の時は「無い」とみなすのかこれ?
何この実装……。
OpenCVの仕様です、と言われれば引き下がる他無いが、だとしたらヘルプの文章を
>現在は、JPEGフォーマット保存時の品質(0〜100)のみ指定可能です。
から
>現在は、JPEGフォーマット保存時の品質(1〜100)のみ指定可能です。
に修正スべきだ。



この記事に返信する


YSR

リンク

2011/8/7(Sun) 04:00:05|NO.40427

……偉そうに書きすぎましたが、要するに品質0保存出来ないのでは?
と言うことです。すみません。
後、コードに訂正があります。以下が正しいです。

#include "hspcv.as" dialog "*",16 if stat!1 :end sdim file,256 :file=getpath(refstr,8+1) sdim ext,256 :ext=getpath(refstr,2) if ext=".gif" { buffer 1 picload refstr px=ginfo(12) :py=ginfo(13) cvbuffer 0,px,py cvputimg 0 gsel 0 } else :cvload refstr,0 dialog "*",17 if stat!1 :end for k,0,101 title str(k) cvsave getpath(refstr,32)+file+"("+strf("%03d",k)+").jpg",0,k next end
尚、2回目の(保存)ダイアログではファイル名は適当に何か入力してください。



inovia

リンク

2011/8/7(Sun) 07:25:19|NO.40428

hspcv の main.cpp の 185行に
if ( qu <= 0 ) qu=95;
の処理があるので、0以下を指定したときに品質が95になっているようですね。
http://dev.onionsoft.net/trac/browser/trunk/plugins/win32/hspcv/main.cpp

OpenCVの JPEG品質は 0-100 (デフォルト95)が指定できるようです。
http://opencv.jp/opencv2-x-samples/imencode_imdecode

本来は以下のようにあるべきなのではと思います。
if ( qu < 0 ) qu=95;



YSR

リンク

2011/8/7(Sun) 11:10:36|NO.40429

>inoviaさん
やはり仕様か……
まあ品質0なんて普通しませんけど、
実験用ツールとして組んでましたからちょっと悲しいです。

で、どこにメールすればいいのでしょうかこれ……



skyblue

リンク

2011/8/8(Mon) 18:27:52|NO.40464

>で、どこにメールすればいいのでしょうかこれ……
hspcvの著作権はhspの作者のおにたまさんなので、
おにたまさんに不具合か何かで報告して下さい。



YSR

リンク

2011/8/8(Mon) 20:55:26|NO.40472

>skyblueさん
おにたまさんへの連絡先がやっと見つかったので報告しました。

回答者の皆さん、回答、ありがとうございました。



ONION software Copyright 1997-2021(c) All rights reserved.