その他雑多なこと(tDiary版)
2012/01/31 [火] [長年日記]
_ [PC][自炊] コラムページテキスト2値化フィルタ
GIMP2.6.11向けにscript-fuで作成。写真とテキストが配置されているページでテキスト部分は2値化して、写真部分はそのまま残す。
写真部分の判定は2値化して黒くなった部分が多いところを写真と判定している。写真と判定された部分はFuzzy選択して選択部分に外接する矩形として処理。写真部分の判定で細かく領域選択して領域内の黒の割合を見ているので、時間がかかるのが難点。また、白っぽいところも写真と判定されない。
BWthreshold:2値化するときの閾値
check-step:写真判定用の領域サイズ(pixel)
flame-size:周りの余白部分のサイズ(pixel)白で塗りつぶす
(define (docscan-file-text-enhance filename bw_threshold check-step flame) (let* ( (outfilename (string-append filename ".png")) (xcffilename (string-append filename ".xcf")) (img (car (gimp-file-load RUN-NONINTERACTIVE filename filename))) (layer (car (gimp-image-get-active-layer img))) ) (docscan-text-enhance img bw_threshold check-step flame) (gimp-xcf-save 0 img layer xcffilename xcffilename) (set! layer (car (gimp-image-merge-visible-layers img CLIP-TO-BOTTOM-LAYER))) (file-png-save-defaults RUN-NONINTERACTIVE img layer outfilename outfilename) ) ) (script-fu-register "docscan-file-text-enhance" "/Xtns/DocScan/file-text-enhance..." "load file, Picture->no process Text->Black and White" "Kazunori Takeuchi " "Kazunori Takeuchi" "2012-01-11" "" SF-FILENAME "filename" "t0001.bmp" SF-ADJUSTMENT "BWthreshold" '(192 0 255 1 8 0 SF-SPINNER) SF-VALUE "check-step" "50" SF-VALUE "flame-size" "20" )
(define (docscan-cut-largeblack img white-layer check-x check-y check-step) (let* ( (hist 0) (none 0) (wariai 0) ) (gimp-rect-select img check-x check-y check-step check-step CHANNEL-OP-REPLACE TRUE 0) (set! hist (cdr (gimp-histogram white-layer HISTOGRAM-VALUE 223 255))) (set! none (car hist)) ; mean (set! hist (cdr hist)) (set! none (car hist)) ; std-dev (set! hist (cdr hist)) (set! none (car hist)) ; median (set! hist (cdr hist)) (set! none (car hist)) ; pixels (set! hist (cdr hist)) (set! none (car hist)) ; count (set! wariai (car hist)) ; percentile (if (= wariai 0) (begin (gimp-fuzzy-select white-layer (+ check-x (/ check-step 2)) (+ check-y (/ check-step 2)) 0 CHANNEL-OP-REPLACE FALSE FALSE 0 TRUE) (let* ( (bounds (cdr (gimp-selection-bounds img))) (x1 (car bounds)) (bounds (cdr bounds)) (y1 (car bounds)) (bounds (cdr bounds)) (x2 (car bounds)) (bounds (cdr bounds)) (y2 (car bounds)) ) (gimp-rect-select img x1 y1 (- x2 x1) (- y2 y1) CHANNEL-OP-ADD FALSE 0) (gimp-edit-fill white-layer BACKGROUND-FILL) (gimp-edit-cut white-layer) ) ) ) ) ) (define (docscan-text-enhance img bw_threshold check-step flame) (gimp-palette-set-foreground `(0 0 0)) (gimp-palette-set-background `(255 255 255)) (let* ( (layer (car (gimp-image-get-active-layer img))) (white-layer layer) (layer-height (car (gimp-drawable-height layer))) (layer-width (car (gimp-drawable-width layer))) (check-x 0) (check-y 0) ) ;真っ白レイヤー作成 (set! white-layer (car (gimp-layer-copy layer 1))) (gimp-image-add-layer img white-layer -1) (gimp-drawable-set-visible layer FALSE) ;真っ白レイヤー、正規化/2値化 (gimp-selection-all img) (gimp-levels-stretch white-layer) (gimp-threshold white-layer bw_threshold 255) ;枠、余白、白塗りつぶし (docscan-flame-clear img flame) ;写真部分透明化 (set! check-x 0) (while (<= check-x layer-width) (set! check-y 0) (while (<= check-y layer-height) (docscan-cut-largeblack img white-layer check-x check-y check-step) (set! check-y (+ check-y check-step)) ) (set! check-x (+ check-x check-step)) ) (gimp-selection-all img) (gimp-drawable-set-visible layer TRUE) ) ) (script-fu-register "docscan-text-enhance" "/Xtns/DocScan/text-enhance..." "Picture->no process Text->Black and White" "Kazunori Takeuchi " "Kazunori Takeuchi" "2012-01-11" "" SF-IMAGE "Image" 0 SF-ADJUSTMENT "BWthreshold" '(192 0 255 1 8 0 SF-SPINNER) SF-VALUE "check-step" "50" SF-VALUE "flame-size" "20" )
(define (docscan-flame-clear img check) (let* ( (draw (car (gimp-image-get-active-layer img))) (layer-height (car (gimp-drawable-height draw))) (layer-width (car (gimp-drawable-width draw))) ) ;裏当て除去 (gimp-rect-select img check check (- layer-width (+ check check)) (- layer-height (+ check check)) CHANNEL-OP-REPLACE FALSE 0) (gimp-selection-invert img) (gimp-edit-fill draw BACKGROUND-FILL) (gimp-displays-flush) (gimp-selection-all img) ;余白選択 (gimp-fuzzy-select draw (+ check check) (+ check check) 15 CHANNEL-OP-REPLACE FALSE FALSE 0 TRUE) ;ゴミ除去 (gimp-selection-invert img) (gimp-selection-shrink img 1) (gimp-selection-grow img 1) (gimp-displays-flush) (let* ( (bounds (cdr (gimp-selection-bounds img))) (x1 (car bounds)) (bounds (cdr bounds)) (y1 (car bounds)) (bounds (cdr bounds)) (x2 (car bounds)) (bounds (cdr bounds)) (y2 (car bounds)) ) (gimp-rect-select img x1 y1 (- x2 x1) (- y2 y1) CHANNEL-OP-REPLACE FALSE 0) ) (gimp-selection-invert img) (gimp-edit-fill draw BACKGROUND-FILL) ) (gimp-displays-flush) ) (script-fu-register "docscan-flame-clear" "/Xtns/DocScan/flame-clear..." "scan image flame clear" "Kazunori Takeuchi " "Kazunori Takeuchi" "2012-01-11" "" SF-IMAGE "Image" 0 ; SF-IMAGE "Drawable" 0 SF-VALUE "check-step" "20" )
- http://synthroid1.com/ ×5807
- http://tadalafil2.com/ ×3763
- http://lasix100.com/ ×3669
- http://amoxicillin500.com/ ×3611
- http://doxycycline1.com/ ×3560
- http://tadalafil20tab.com/ ×3286
- http://tadalafil100.com/ ×2209
- http://retina0.com/ ×2148
- http://zithromaxazithromycin.com/ ×2143
- http://lisinopril40.com/ ×1568
- http://valtrex1.com/ ×1389
- http://prednisone0.com/ ×1149
- http://clomid2.com/ ×1095
- http://albendazoletablets.com ×486
- http://valtrexcost.com ×428
- http://tadalafil40.com ×401
- http://prednisolone40.com ×396
- http://prednisolone40.com/ ×390
- http://albendazoletablets.com/ ×369
- http://albuterol100.com/ ×363
- http://ventolin90.com ×348
- http://amoxicillin8.com ×343
- http://lisinopril20.com ×336
- http://lasix40.com ×334
- http://prednisolone5.com ×324
- http://doxycycline100.com ×314
- http://prednisone2.com ×164
- http://albuterolhf.com ×149
- http://propecia5.com ×140
- http://synthroidlevothyroxine.com ×137
- http://bupropionsr.com/ ×131
- http://valtrexcost.com/ ×114
- http://cialis5.com ×63
- http://zoloft50.com ×62
- http://ataraxgeneric.com ×60
- http://prednisolone10.com ×58
- http://busparonline.com ×56
- http://stromectol3.com ×56
- http://buyciproonline.com ×53
- http://atenolol50mg.com ×51
- http://amoxicillinwithoutprescription.com ×51
- http://advairinhalers.com ×44
- http://vardenafil20.com ×37
- http://valtrexrx.com ×34
- http://tetracycline500.com ×33
- http://diflucan150.com ×32
- http://xenicalcapsules.com ×31
- http://zithromaxazithromycin.com ×29
- http://albuterolhf.com/ ×27
- http://albuterol90.com ×26
- http://retina01.com ×25
- http://nolvadexd.com ×24
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×9
- http://mixi.jp/ ×7
- https://www.google.com/ ×6
- https://www.google.co.jp/ ×6
- http://tadalafil40.com/ ×5
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×4
- http://www.cosmichorror.org/sfdiary/ ×3
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×3
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×3
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×2
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×2
- http://m.mixi.jp/bridge.pl?type=external&url=http:... ×1
- http://d.hatena.ne.jp/FukayaAruto/20060920/p2 ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mixi.jp/home.pl?from=h_logo ×1
- http://nolvadexd.com/ ×1
- http://www.archive.org/details/benjaminwhee ×1
- http://search.aol.com/aol/search?v_t=comsearch50&q... ×1
- http://ruby.g.hatena.ne.jp/garyo/20070507/11785013... ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mixi.jp/home.pl?from=global ×1
- http://search.babylon.com/?s=web&babsrc=HP_ss&q=自炊... ×1
- https://www.google.co.jp ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mser.cocacola.co.jp/?ktr_sid=5ff07ca300f1b1... ×1
- http://search.m.infoseek.co.jp/search?query=血液検査 ピ... ×1
- http://ventolin90.com/ ×1
- http://www.routan.org ×1
- http://lisinopril20.com/ ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://doxycycline100.com/ ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://www.baidu.com/s?wd=though491 ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://www.netvibes.com/accutane ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- http://mixi.jp/view_diary.pl?url=http://kazunori.s... ×1
- キーワード不明 ×34 : .comのGoogle検索 ×6, .co.jpのGoogle検索 ×3, .co.jpのGoogle検索 ×2, .co.jpのGoogle検索 ×2, .comのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1, .co.jpのGoogle検索 ×1
- ムコスタ錠 ×5 : .co.jpのYahoo!検索 ×2, .co.jpのYahoo!検索 ×1, .co.jpのYahoo!検索 ×1, .co.jpのYahoo!検索 ×1
- libFNP_events.log ×3 : .co.jpのGoogleのURL検索? ×1, .co.jpのGoogleのURL検索? ×1, .co.jpのGoogleのURL検索? ×1
- PL配合顆粒 ×3 : .co.jpのYahoo!検索
- 血色素量 ×2 : .co.jpのYahoo!検索
- PL配合 ×2 : .co.jpのYahoo!検索 ×1, .co.jpのYahoo!検索 ×1
- RD Err-14 ×2 : .comのGoogle検索
- 鼻炎薬 ×2 : .co.jpのYahoo!検索
- "本体カバーを側面を広げるようにしつつまっすぐ上に持ち上げるようにして外す" ×2 : .co.jpのGoogleのURL検索?
- jal varicon ×2 : .co.jpのGoogleのURL検索? ×1, .co.jpのGoogleのURL検索? ×1
- ユーザープロファイルを読み込めません ×2 : .co.jpのYahoo!検索
- クラビット錠 ×2 : .co.jpのYahoo!検索
- γGPT ×2 : .co.jpのYahoo!検索
- gimp2 二値化 スクリプト ×2 : .co.jpのGoogleのURL検索?
- フルメトロン ×2 : .co.jpのYahoo!検索 ×1, .co.jpのYahoo!検索 ×1
- タニタ err6 ×2 : .co.jpのGoogleのURL検索? ×1, .co.jpのYahoo!検索 ×1
- ホワイト版レイヤーの作成 gimp ×1 : .co.jpのGoogleのURL検索?
- 一斉有給休暇 ×1 : .co.jpのYahoo!検索
- ムコスタ錠100mg ×1 : .co.jpのYahoo!検索
- GIMP 2値化 割合 ×1 : .co.jpのYahoo!検索
- 谷山浩子 土曜日のタマネギ ×1 : .co.jpのYahoo!検索
- 病院 薬 風邪悪化 ×1 : .co.jpのYahoo!検索
- 膚 読み方 ×1 : .co.jpのYahoo!検索
- ノートン 再インストール 認証 ×1 : .co.jpのYahoo!検索
- タニタErr6 ×1 : .co.jpのYahoo!検索
- ケータイマグ 匂い ×1 : .co.jpのYahoo!検索
- ピロリ菌検査正常値 ×1 : .co.jpのYahoo!検索
- HDD 破損 ×1 : .co.jpのYahoo!検索
- いぼの治療 ×1 : .co.jpのYahoo!検索
- 青山ブックセンター新宿 ×1 : .co.jpのYahoo!検索
- GIMP 2値化 パーセント ×1 : .co.jpのYahoo!検索
- DVD-R チェック ×1 : .co.jpのYahoo!検索
- finepix ax300 フォーマットできない ×1 : .comのGoogleのURL検索?
- gimp 余白 白く 塗る ×1 : .co.jpのGoogleのURL検索?
- gimp-levels-stretch threshold ×1 : .co.jpのGoogle検索
- 献血 ポイント ×1 : .co.jpのYahoo!検索
- zaurus tdiary ×1 : .co.jpのGoogle検索
- まっくら森のうた ×1 : .co.jpのYahoo!検索
- VGAポート ×1 : .co.jpのYahoo!検索
- rd-x2 分解 ×1 : .co.jpのGoogle検索
- SF-FILENAME スクリプト ×1 : .co.jpのGoogle検索
- /clr オプションと共にコンパイルできません 2003 ×1 : .co.jpのGoogleのURL検索?
- GIMP SF-VALUE ×1 : .comのGoogleのURL検索?
- gimp 二値化 フィルタ ×1 : .co.jpのGoogleのURL検索?
- "optiplex960" "無線LAN" ×1 : .co.jpのGoogleのURL検索?
- a-bike km ×1 : .co.jpのGoogleのURL検索?
- 終電座 ×1 : .co.jpのYahoo!検索
- hhr-3am ×1 : .co.jpのGoogleのURL検索?
- gimpで正規化にかかる時間 ×1 : .co.jpのYahoo!検索
- ボクハキミガスキ 小説 ×1 : .co.jpのGoogle検索
- 第3種郵便 ×1 : .co.jpのYahoo!検索
- 歯の歯石とり ×1 : .co.jpのYahoo!検索
- スピール膏 いぼ ×1 : .co.jpのYahoo!検索
- scriptfu non-interactive ×1 : .co.jpのGoogle検索
- 山手線切符 ×1 : .co.jpのYahoo!検索
- 熱が出てきた ×1 : .co.jpのYahoo!検索
- 鼻炎薬 副作用 ×1 : .co.jpのYahoo!検索
- 献血失敗 ×1 : .co.jpのYahoo!検索
- cl : コマンド ライン error d8045 : c ファイル を /clr オプションと共にコンパイルできません ×1 : .co.jpのGoogleのURL検索?
- トランサミンカプセル ×1 : .co.jpのYahoo!検索
- クラビット 500 ×1 : .co.jpのYahoo!検索
- script-fu gimp_drawable_set_visible ×1 : .co.jpのGoogle検索
- zeta yellowtab download 1.2.1 ×1 : .itのGoogleのURL検索?
- 白血球像 ×1 : .co.jpのYahoo!検索
- ひかり早得 ×1 : .co.jpのYahoo!検索
- ロブとムコスタ ×1 : .co.jpのYahoo!検索
- 脚がだるい ×1 : .co.jpのYahoo!検索
- "C ファイル" "/clr オプションと共に" ×1 : .comのGoogle検索
- gimp channel-op-add ×1 : .co.jpのGoogleのURL検索?
- WAPキー ×1 : .co.jpのYahoo!検索
- ロルカム4mg ×1 : .co.jpのYahoo!検索
- 竹内ブリーダー ×1 : .co.jpのYahoo!検索
- a-bike サイクルコンピューター ×1 : .co.jpのYahoo!検索
- fi-4530c windows7 ×1 : .co.jpのGoogleのURL検索?
- gimp-selection-bounds ×1 : .co.jpのGoogle検索
- 意味なしアリス バックコーラス ×1 : .co.jpのYahoo!検索
- gimp-xcf-save スクリプト ×1 : .co.jpのYahoo!検索
- 恋愛 ソング 片思い ×1 : .co.jpのYahoo!検索
- 結膜下出血 献血 ×1 : .co.jpのGoogle検索
- Text Enhance ×1 : .co.jpのYahoo!検索
- wm3500rアップデート ×1 : .co.jpのYahoo!検索
- スロット メモ ×1 : .co.jpのYahoo!検索
- ルリコンクリーム ×1 : .co.jpのYahoo!検索
- 大泉学園 駅ビル ×1 : .co.jpのYahoo!検索
- cl : コマンド ライン error d8045 ×1 : .co.jpのGoogleのURL検索?
- file-png-save-defaults ×1 : .co.jpのYahoo!検索
- WIMAX 設定 方法 ×1 : .co.jpのYahoo!検索
- script-fu gimp-selection-fuzzy ×1 : .co.jpのGoogle検索
- バスの定期落とした ×1 : .co.jpのYahoo!検索
- γGPT ×1 : .co.jpのYahoo!検索
- キャンディーヌ ×1 : .co.jpのYahoo!検索
- gimp 二値化 割合 ×1 : .comのGoogleのURL検索?
- st9750423as ユーティリティ ×1 : .co.jpのGoogleのURL検索?
- タニタ KD Err6 ×1 : .co.jpのYahoo!検索
- gimp 二値化 スクリプト ×1 : .co.jpのGoogleのURL検索?
- PL配合顆粒 ×1 : .co.jpのYahoo!検索
- クランクケース ボルト ×1 : .co.jpのYahoo!検索
- 休止状態 電源 ×1 : .co.jpのYahoo!検索
- error D8045 ×1 : .co.jpのYahoo!検索
- dvr-ieh2 分解 ×1 : .co.jpのYahoo!検索