OpenCV 学習:GrayScale/'RGB' 変換

2017-07-08 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
このところ、Python プログラムを“GSL Shell”に移植している。

その中で、こんなコードが出てきた:
from  PIL import Image
img = Image.open( inp_tif )
img = img.convert( 'RGB' )
IMG = img.load()
##### IMG 加工
img.save( out_png )
これを作った頃は、“Pillow”だった?

それで、
この処理を“GSL Shell”で書くなら、やはり“OpenCV”ですネ:
cv2 = require'cv2'
img = cv2.cvLoadImageM( inp_tif, 1 ) -- 'BGR' で読み込む
----- img 加工
cv2.cvSaveImage( out_png, img, 0 )
の様に、読み込み時に変換する?

cvLoadImageM関数の第2引数:
 -1 ・・・ ありのままに読み込む
 0 ・・・ GrayScale で読み込む
 1 ・・・ 'BRG'カラーで読み込む


ところが今回、今更ながら“OpenCV”では、
読み込み済み画像の色数変換が出来ることを知った。
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
なる関数が使えた。

それで、第3引数の“code”値については、
CV_BGR2BGRA =0
CV_RGB2RGBA = CV_BGR2BGRA
CV_BGRA2BGR = 1
CV_RGBA2RGB = CV_BGRA2BGR
CV_BGR2RGBA = 2
CV_RGB2BGRA = CV_BGR2RGBA
CV_RGBA2BGR = 3
CV_BGRA2RGB = CV_RGBA2BGR
CV_BGR2RGB = 4
CV_RGB2BGR = CV_BGR2RGB
CV_BGRA2RGBA = 5
CV_RGBA2BGRA = CV_BGRA2RGBA
CV_BGR2GRAY = 6 // カラーから白黒
CV_RGB2GRAY = 7
CV_GRAY2BGR = 8 // 白黒からカラー
CV_GRAY2RGB = CV_GRAY2BGR,
CV_GRAY2BGRA = 9
CV_GRAY2RGBA = CV_GRAY2BGRA
CV_BGRA2GRAY = 10
CV_RGBA2GRAY = 11
・・・・・
ですね。


そうすると、・・・・・
cv2 = require'cv2'
ffi.cdef[[
void cvCvtColor( const CvArr* src, CvArr* dst, int code );
]]
img = cv2.cvLoadImageM( inp_tif, 0 ) -- 白黒 で読み込む
-----
-----
img2 = cv2.cvCreateMat( img.yy, img.xx, 16 ) -- カラー画像領域確保 ( CV_8UC3 )
cv2.cvCvtColor( img, img2, 8 ) -- 色数変換
----- img2 加工
cv2.cvSaveImage( out_png, img2, 0 )
の様になる。


本日はここまで。


Lua ( GSL Shell ) / OpenCV 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


170530,0603
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
06 | 2017/07 | 08
- - - - - - 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 - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク