JP2008117235A - 画像処理装置、カメラ装置、画像処理方法、およびプログラム - Google Patents
画像処理装置、カメラ装置、画像処理方法、およびプログラム Download PDFInfo
- Publication number
- JP2008117235A JP2008117235A JP2006300917A JP2006300917A JP2008117235A JP 2008117235 A JP2008117235 A JP 2008117235A JP 2006300917 A JP2006300917 A JP 2006300917A JP 2006300917 A JP2006300917 A JP 2006300917A JP 2008117235 A JP2008117235 A JP 2008117235A
- Authority
- JP
- Japan
- Prior art keywords
- image
- boundaries
- synthesis
- images
- block matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 71
- 230000003287 optical effect Effects 0.000 claims abstract description 20
- 238000012937 correction Methods 0.000 claims description 110
- 230000015572 biosynthetic process Effects 0.000 claims description 59
- 238000003786 synthesis reaction Methods 0.000 claims description 59
- 230000002093 peripheral effect Effects 0.000 claims description 25
- 230000009467 reduction Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 239000000203 mixture Substances 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 44
- 238000000034 method Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 18
- 239000000284 extract Substances 0.000 description 10
- 238000001228 spectrum Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 7
- 239000003086 colorant Substances 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 5
- 230000037303 wrinkles Effects 0.000 description 4
- 230000008602 contraction Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003595 spectral effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 235000014676 Phragmites communis Nutrition 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/02—Affine transformations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/16—Image acquisition using multiple overlapping images; Image stitching
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Studio Devices (AREA)
Abstract
【解決手段】選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う合成処理部142を有する。
【選択図】図1
Description
また、上記技術においては、2枚の画像を合成することを前提としており、1列だけでなく、多くの枚数、たとえば数千枚の画像をつなぐ場合に誤差が累積して、いわゆるしわ寄せが発現し、正確な合成が困難であるという不利益がある。
レンズの特性に起因する色ムラが目立つという不利益がある。
抽出したパラメータに基づいて合成対象の全ての境界についてブロックマッチングを行う。そして、すべての境界について同時並列的にブロックマッチングの結果の評価を行いすべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う。
そして、精密合成処理部142は、第1色補正機能部143、合成機能部144、および第2色補正機能部145を含んで構成されている。
以下、本実施形態の精密合成の特徴な機能部分を具体的に説明する。
そして、第1色補正機能部143は、すべての部分画像に一様に周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を行う。
また、第2色補正機能部145は、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う。
つまり、空間的関数のシフトがスペクトル領域における位相のみ変化するというフーリエシフト定理に基づいて技術を採用している。
つまり、2つの関数f1およびf2が次の関係を満足しているとする。
f2(x、y)=f1(x+xt,y+yt)
F2(u,v)=F1(u,v)exp(−2πi(uxt+vyt))
実際、画像は、図3に示すように、2つの画像の相互電力スペクトルのようなビット雑音である。
したがって、相互電力スペクトル(CPS)のピークを探り出し、それからトランスレーション(平行移動)パラメータ(xt,yt)を引き出すことが望ましい。
図3(A)は2つの画像のステッチングの結果を示している。2次元のトランスレーションは、図3(B)に示すように、相互電力スペクトル(CPS)のピーク検出によって得られる。ここで、相互電力スペクトル(CPS)が読み可能であれば画像は完全に整合する。
ノイズの多い画像は、最高のピークを検出することが困難であることから、いくつかのピークから選択するようにしても良い。
ここで、BMは上述した相互電力スペクトル(CPS)のピークを引き出す機能を含む。
たとえば左下が第0の画像IM0、その右が第1の画像IM1、左上が第2の画像IM2、その右が第3の画像IM3とする。これらの画像IM0〜IM3は、隣接する画像間の境界で重なり部分を含むように配置される。
図4において、境界部分に配置した矩形で示すものがブロックBLKである。
このような配置条件で、BM(ブロックマッチング)を行う。
そして、上下左右の4つの境界BDR01,BDR02,BDR13,BDR23から、レンズ歪み、画角、チルト角などの情報を取り出す。
BMは、たとえば図5に示すように、一つの境界で3箇所について行う。
レンズ歪みがあると、BMの結果は図6に示すように弓なりになる。
チルト角が正しくないと、BMの結果は図7に示すような、図中の左右方向に傾いたような誤差が生じる。
レンズ歪みの中心が縦にずれていると、図8に示すように、上下の境界で左右の伸縮が起きる。左右の境界で上下の伸縮が起きているときは、レンズ歪みの中心が横にずれているときである。
上に向くにつれて画像が回転する場合、図9に示すように、上下方向に傾いたような誤差が生じる。メカニカルなチルト軸に対してカメラが正面を向いていないときに、図9のようになる。
これらの誤差が最小となるように各種パラメータを決める。
これにより、どこの4枚をつないでも、誤差を小さくすることができる。
この場合、基準画像を1枚決め、それ以外の画像を平行移動して最も誤差が小さくなる位置に収束させる。
平行移動で最適位置を求め、移動する。
この場合、ループを回す。
移動すべき量の総和を示すパラメータ fxy を 0.0 にする。
上下左右(縦横)のすべての画像について行う。
基準画像は動かさない。
BMの結果、隣接画像との位置関係が得られているのでこれに基づいて動かすべき量を計算する。
その方法は、真上と右隣のものを加え、真下と左隣のものを引いて平均を作り、f[y][x].x, f[y][x].y とする。
その80%を現在の画像の中心位置に加えて新しい画像の中心位置とする。
fxy に、すべての画像の移動すべき量の絶対値の総和を入れる。
この移動によって上下の位置関係、左右の位置関係がどう改善されるかを計算する。
fxy はこの移動を繰り返すことにより、だんだん小さくなる性質を持っている。
言い換えると、これ以上移動することができない状態に収束する。
fxy が十分小さくなったら終了する。
ここでは、4枚の画像について考察する。
第0の画像IM0は動かさない。すなわち、第0の画像IM0を基準画像とする。
BM(ブロックマッチング)の結果の横の成分を bx1[0]、bx1[1]、bx2[0]、bx2[1]とする。
縦の成分も独立に行うが、ここでは横のみを扱うことにする。
bx1は左右、bx2は上下である。[]の中の数字は0が下または左である。
基準画像IM0に対して右または上の画像が右または上にあるとき、BM結果は正の値となる。
今、極端な例として、一か所だけ異常な値があったときを想定し、bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0とする。
もし、第0の画像IM0と第1の画像IM1のBM結果から第1の画像IM1の位置を決め、第1の画像IM1と第3の画像IM3のBM結果から第3の画像IM3の位置を決め、第2の画像IM2と第3の画像IM3のBM結果から第2の画像IM2の位置を決めていくと、第0の画像IM0と第2の画像IM2の位置関係に10画素という大きな値がしわ寄せとして生じてしまう。
xypos2()で隣接画像との位置関係から平行に移動すべき量を求める。
最初、第1の画像IM1は−5画素移動するべきと計算される。
move() で平行に移動する。
実際に移動させる量はその80%の4画素である。
第0の画像IM0以外の各画像IM1,IM2,IM3の移動量は pox[1]=4、pox[2]=0、pox[3]=0 となる。
このことにより、BM結果bx1[0]は10から6に変化する。
それに伴い、bx2[1]は0から4に変化する。
2回目、第1の画像IM1は−1画素移動するべきと計算される。
第3の画像IM3は−2画素移動するべきと計算される。
その80%、0.8を加算するとpox[1]=4.8となる。
以下、3回目、...と計算し、32回目に、移動すべき量の総和が fxy が 0.001画素を下回るため、終了となる。
このとき、平行に移動すべき画素数は7.5,2.5,5.0となり、各画像の位置関係も、
bx1[0]=10、bx1[1]=0、bx2[0]=0、bx2[1]=0であったものが、
bx1[0]=2.5、bx1[1]=-2.5、bx2[0]=-2.5、bx2[1]=2.5となって、誤差が分散されていることがわかる。
0 0 0.000000 0.000000
1 2 -0.000244 0.000000
2 2 -0.000244 0.000000
3 2 -0.000344 0.000000
n pox[n] poy[n] fz[n] 平行に移動すべき画素数
0 0.00 0.00
1 7.50 0.00
2 2.50 0.00
3 5.00 0.00
clrpos(); // 平行に移動すべき量[pixel] pox[],fzx[],rolla[] に 0 を入れる。
for (ii=0;ii<1000;ii++){
xypos2(); // 隣接画像との位置関係から平行に移動すべき量を求める。
if (fxy<0.001){break;}
move(); // 平行に移動する。
}
fprintf(inf,"ii=%3d, fxy=%8.5f fxy が 0.001 以下になったときの回数とその値\n",ii,fxy);
xypos(); // 隣接画像との位置関係から平行に移動すべき量を求める。
move(); // 平行に移動する。
dsppos(); // 補正量を表示する。
angle(); // 補正量を角度にし、 qq[n],pp[n] を更新する。
dsppos(); // 補正量を表示する。
dsperr(); // 各小画像対の誤差が 1 を超えるものを表示する。
step(); // qq[n],pp[n] からステップ角を作る。
−−プログラムの一部(ここまで)−−−−−−−−−−−−−−−−
void xypos2(){ // 隣接画像との位置関係から平行に移動すべき量 fx[n],fy[n] を求め、
// 平行に移動できないフラグ fz[n] を求める。(fprintf 削除)
int m,n,m2,n2,h,v,ix;
double cx,cy;
//fprintf(inf," n ix fx[n] fy[n]\n");
fxy=0;
for (v=0;v<ny;v++){ // すべての画像について
for (h=0;h<nx;h++){
m=(nx-1)*v+h; // 左右の境界
n=nx*v+h; // 上下の境界
ix=0;
if ((0<skip[h][v])||((v==(ny-1)/2)&&(h==(nx-1)/2))){ // 中央の画像と確定済みフラグの画像は動かさない。
fx[n]=0;fy[n]=0;fz[n]=4; // fz[n] は平行に移動できないフラグ
if (skip[h][v]==2){fz[n]=2;} // 確定済みフラグの画像は2とする。
}else{
cx=0;cy=0;
if (v!=0){ // 最下段ではないとき
n2=n-nx; // 真下
if (0<fok2[n2]){
ix++;
cx-=bx2[n2]; // 真下のものを引く
cy-=by2[n2];
}
}
if (v!=ny-1){ // 最上段ではないとき
if (0<fok2[n]){
ix++;
cx+=bx2[n]; // 自分のものをたす
cy+=by2[n];
}
}
if (h!=0){ // 最左端でないとき
m2=m-1; // 左隣り
if (0<fok1[m2]){
ix++;
cx-=bx1[m2]; // 左隣りのものを引く
cy-=by1[m2];
}
}
if (h!=nx-1){ // 最右端でないとき
if (0<fok1[m]){
ix++;
cx+=bx1[m]; // 自分のものをたす
cy+=by1[m];
}
}
if(ix==0){
fx[n]=0;fy[n]=0;fz[n]=1;
}else{
fx[n]=cx/ix;
fy[n]=cy/ix;
fz[n]=0;
}
fxy+=fabs(fx[n])+fabs(fy[n]);
}
}
}
}
//******************************************
void move(){ // 平行に移動する。
int m,n,h,v;
for (v=0;v<ny;v++){ // 画像の中心位置(画素)
for (h=0;h<nx;h++){
n=nx*v+h;
if (fz[n]==0){ // 周囲から隔絶されていないとき
pox[n]+=-fx[n]*0.8;
poy[n]+=-fy[n]*0.8;
}
}
}
for (v=0;v<ny;v++){ // 左右の位置関係
for (h=0;h<nx-1;h++){
m=nx*v+h;
n=(nx-1)*v+h;
bx1[n]+=-(fx[m]-fx[m+1])*0.8;
by1[n]+=-(fy[m]-fy[m+1])*0.8;
}
}
for (v=0;v<ny-1;v++){ // 上下の位置関係
for (h=0;h<nx;h++){
n=nx*v+h;
bx2[n]+=-(fx[n]-fx[n+nx])*0.8;
by2[n]+=-(fy[n]-fy[n+nx])*0.8;
}
}
}
//******************************************
周辺減光補正係数をB,G,Rそれぞれに与え、2次、4次、6次をbk2,bk4,bk6, gk2,gk4,gk6, rk2,rk4,rk6とする。
固定分をm_botとする。
中心のズレには画素数を与え、m_xo, m_yoとする。
単位は画素数であり、最後に等倍の画像に適用するときは変更が必要である。比率にすることでもよい。
黒レベル、白レベル はコントラスト強調のときに使い、m_black,m_whiteとする。
ガンマはm_gammaとする。
彩度はm_satとする。
各画像の明度を個別に補正する係数のファイル MEIHOSEI.DAT の値を mei[n][k]とする。
nは画像番号、kは3色の番号、width , height は画像のサイズ(単位:画素)を示す。
全ての画像について、全ての画素について行う。
注目する座標(xp,yp)から周辺減光特性の中心までの距離distを求める。
yc = height / 2 + m_yo
dist=sqrt((xp-xc) * (xp-xc) + (xp-xc) * (xp-xc))
n2 = n1 * n1
yy[0] = ( ( bk6 * n2 + bk4 ) * n2 + bk2 ) * n2 + 1
yy[1] = ( ( gk6 * n2 + gk4 ) * n2 + gk2 ) * n2 + 1
yy[2] = ( ( rk6 * n2 + rk4 ) * n2 + rk2 ) * n2 + 1
輝度信号yと色差信号cb,crに分離する。
cb = B - y
cr = R - y
c[2] = m_sat * cr + y
c[1] = ( y - 0.114 * c[0] 0.299 * c[2] ) / 0.587
3色についてここまで実行すると、色補正済みのBMP(ビットマップ)ができる。
また、第2色補正機能部145は、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正を行う。
図12は、図11のグラフを2次の補正係数を適当に与えて補正した後のグラフを示す図である。
図13は、図12のグラフにパラメータを追加した後のグラフを示す図である。
2次の補正係数を適当に与えて補正した後の図12に示すようなグラフを見ると、簡単に適正な補正係数に到達することができる。この場合、弓なりはなくなったが、いずれの画像も図中右側が明るいという現象が発現する。
これは、周辺減光特性はレンズの中心から距離の関数として扱っていたが、中心がずれていると考えられる。
パラメータを追加すると、図13に示すように、右側が明るいという現象はなくなる。
しかし、各画像の色がまちまちであることが残っている。
そこて、個別に色補正ができるように補正係数ファイルを作成し、グラフが滑らかになるように係数を与えることで、空の色の不連続は全く見えなくなる。
図15(A)、(B)は、境界を滑らかに自動補正する方法を説明するための図である。
周辺減光補正にグラデーションエラーが僅かでも残っていると縦または横にだんだん明るさが変わっていく現象が発生する。
この誤差を評価関数として、グラデーションエラーを除くことができる。
図15(A),(B)に示すように、境界を滑らかに自動補正するには、ブロックP,Qの画素値の平均値を目標値とし、画像IM4とIM5の中心A,Bの画素値は変えずに目標値Tに向かって2次の曲線で補正する。
パラメータを取り込む。
サイズデータ(SIZE.DAT)を読む。
kidolpf() で、境界に8個の正方形を置き、そこの輝度値を取得する。
nlpf は正方形のサイズ
kidobgr[][][][] (BGR,i,j,位置)に入る。
すべての画像についてを行う。
movey() でkidobgr[][][][]を輝度信号に変え、BGRの3つとも同じ値を入れる。
move() で、kidobgr[][][][] をkidobgr2[][][][]にコピーしておく。
(この後、kidobgr[][][][] は不変だが、kidobgr2[][][][] は変化する。)
Kidoer2() で、kidobgr2[][][][] から輝度値の誤差 kidosa[][][] を取得する。
kidosa[][][] はある画像が周囲の画像との差を減らす方向に変更すべき量である。
Kidosamax はすべての画像の kidosa[][][] の最大値である。
相手の画像の対応する領域の輝度値との差を平均したものであり、隅の場合、相手は斜め隣りの画像とする。
meiclr() で、明度補正係数 meiho[][][] に0を入れる。
ここからは繰り返しである。
meiadd() で、meiho[][][] に kidosa[][][] の半分を加算する。
ただし、基準の画像の輝度だけは変えない。
inten() で、kidobgr[][][][] に meiho[][][] で補正して kidobgr2[][][][] を作る。
(これを行う度に kidobgr2[][][][] も meiho[][][] も正しい値に近づく。)
kidoer2() で、kidobgr2[][][][] から輝度値の誤差 kidosa[][][] を取得する。
(これを行う度に kidosa[][][] が 0 に近づく。)
kidosamax < 0.1 となるまで繰り返す(kidosamax は kidosa[][][] の絶対値の最大値を示す)。
なお、meihodc[l] は明度補正係数の平均値を示し、meihox[l] は明度補正係数の横の偏り、meihoy[l] は明度補正係数の縦の偏りを示す。
周辺減光補正の中心のズレが正しくないときは明度補正係数の縦横の偏りが大きくなるのでこの数値が0に近づくように変更してやり直す。
meihox[l], meihoy[l] が0に近ければ全域にわたってほぼフラットになっている。
色の不連続を極限まで排除して境界を滑らかに色補正する。
パラメータを取り込む。
サイズデータ(SIZE.DAT)を読む。
kidolpf20A() で境界に20個の正方形を置く。
kidolpf20() で境界に20個の正方形を置き、そこの画素値を取得する。
nlpf は正方形のサイズ
kidobgr[][][][] (BGR,i,j,位置)に 100倍した値で入る。
すべての画像についてを行う。
kidoer2C() で周辺微調整倍率 kidohi[h][i][j][20] を取得する。
自分の画素値と相手の画素値との平均値を目標値とする。
自分の画素値から目標値に達するまでの倍率を1000倍したものである。
recdata12C() で kidodata.txt を作る。
recdata13C() で kidohi[h][i][j][20] の10倍を shuuhen.txt に書く。
このデータは20個の離散的な値である。これらをつなぐ直線上の値は比例配分で決める。
この画像処理の手順は以下のようになる。
中央の画素値 O(0,0) は変更しない。
O から P を通って境界線との交点 を Q(x2,y2) とする。
Q をはさむ2つの周辺微調整倍率のデータから直線補完する。
画素値が中心からの距離の2乗に比例して変化すると仮定した関数を使う。
この処理を各種の色補正と同時に行い、MEI の中に書き出す。
以下、滑らか色補正の中の特徴的な処理の一例の内容を詳述する。
SHUUHEN.TXT から滑らか補正の値 shu[n][h][i] を入力する。
(n:画像番号 h:20点 i=0:x i=1:y i=2:B i=3:G i=4:R)
黒レベル、ガンマ、白レベル、彩度倍率、周辺減光係数、MEIHOSEI.DAT を与えて補正を行う。
x も y も画像の中心を原点とし、すべての画素について演算する。
ang は( ys , xs )と原点とを結ぶ直線の方向を示す。
2点 poia , poib を結ぶ直線を y = a11 * x + b11 として a11,b11 を求める。
この直線と、原点から ang の方向に延ばした直線の交点の座標を求め、 xq , yq とする。
xq , yq が poia , poib からどの位離れているかを示す、比例配分用の係数 k11 を求める。(poia に近いと 0、poib に近いと 1 になる。)
境界部分の BGR の倍率 gq[w] を poia , poib の倍率から比例配分で求める。
色補正倍率が原点からの距離の2乗に比例する y = 1 + k22 * r*r の式に乗ると仮定する。
境界部分の倍率が gq[w] なので係数 k22[w] が次式で求められる。
(2)縮小した画像を精密合成無しで円筒に射影して合成する。
この円筒の中心は2軸アクティブ雲台の回転中心である。
たとえば、メモリの制約がある場合には、縦軸を高さではなく、緯度として扱う。
すべての原画像の光軸方向の経度、緯度のデータをテキストファイルを初期値として与える。
(3)周辺減光補正を行い、補正係数を求める。
すべての原画像がしかるべき位置に置かれた状態で、RGB成分毎に輝度値のグラフを作り、重複領域内の輝度値に高周波成分の少ない部分をピックアップする。
青空や白壁などが自動で検出される。
高周波成分の多い部分では周辺減光特性を正しく検出できないからである。
周辺減光補正関数は画面の中心から横縦に (x1,y1) だけずれた位置を基準とし、そこからの距離に対して2次と4次の係数を与えた4次関数とする。
重複領域内の輝度値の差が最小になるようにこの関数の係数を変化させる。
(4)画像毎の明度補正を行い、補正係数を求める。
周辺減光補正が完璧に行われていても見た目がきれいにならない場合がある。
たとえば蛍光灯下で速いシャッター速度で撮影したときなど、隣接する画像に輝度差が生じている場合、これを補正する。
明るい画像でも暗い画像でも一様に誤差が減っていくような補正関数を用いる必要がある。
(5)ここまでで得られた補正係数で、縮小していない原画像に対して周辺減光補正と画像毎の明度補正を施すのだが、最終出力画像にコントラスト強調、ガンマ補正、色の濃さ強調を行う場合、一括して行う。
ここから精密合成を始めるのだが、周辺減光補正、画像毎の明度補正、コントラスト強調、ガンマ補正、色の濃さ強調の各処理をした画像で位置関係を求めて行く。
ここから原画像を使う。
(6)中央部の条件の良い4枚を選択し、上下左右の隣接画像の重複部の位置関係を画像マッチングにより求める。
(7)このデータからレンズ歪み、見下ろす角度、画角、パンチルタのステップ角などを求める。
(8)上部と下部でそれぞれ条件の良い4枚を選択し、上下左右の隣接画像の重複部の位置関係を画像マッチングにより求める。
(9)このデータから画角、パンチルタのステップ角の誤差や素性をより正確に求める。
ここまでの作業ですべての画像に共通のパラメータが得られているので、全体のステッチングを始める。
102枚の画像の80箇所の境界すべてを同時に監視してその誤差が最小になるように各画像の位置を調整して行く。
ここで障害になるのが条件の悪い境界の存在である。
もし、すべての境界が好条件ならば、これまでに得られたパラメータで処理すればほぼ完全に誤差が除去される。
その理由はただ1個のカメラで撮影しているからである。
102枚の画像の80箇所もの境界がすべて好条件であることなど殆どあり得なく、いたるところに悪条件の部分が含まれている。
これらの悪条件の部分を正確に把握し、確実に排除して、正しい位置関係を示すデータのみによって収束していくようにすることが最も重要である。
その領域の縦のサイズはほぼ垂直画素数1920画素程度である。
この領域を 64×64の領域を1単位としてBM(ブロックマッチング)を行う。
この左右の2枚を縦横に平行移動のみで合わせる場合は重複領域の中に有意なブロックが1個以上存在すれば良い。
この重複領域の上部と下部で位置関係が左右にずれている場合は見下ろす角がずれていたりしていることを意味する。
この重複領域の上部と下部で位置関係が上下にずれている場合は左右の縦のサイズが異なっていることを意味する。
この重複領域の上部と下部とその中間で位置関係が直線でなく弓なりになっている場合はレンズ歪みの影響である。
したがって、レンズ歪を検出するためには重複領域の長辺方向に最低3個の有意なブロックが必要である。
(11)横軸を重複領域の長辺方向、縦軸をBM(ブロックマッチング)の結果の位置ずれ、としてグラフを作り、これを最小二乗法で放物線とみなしてその係数を求める。
2次の係数はレンズ歪補正によってほぼ0になっている。
1次の係数もメカニカルの素性や画角、ステップ角、見下ろす角度などが正しく設定されていればほぼ0になっている。
0次の係数はメカニカルの精度が有限であるための誤差を含んでいる。
たとえば所定のカメラに400mmの望遠レンズを付けた場合は1画素は1/968度だから1/100度の誤差があれば10画素のずれを生じる。
(12)この0次の係数を使って、すべての画像の方向を変更し、全体の誤差を減少させて行く。
合成する画像の数にかかわりなく、正確な合成を行うことが可能で、また、色ムラの発生を抑止することができる。
そして、レンズ歪補正係数を実写画像から抽出することができたため、厄介なキャリブレーションの作業が不要になり、精度も格段に向上する。
何1000枚つないでもしわ寄せが出ない方法により、撮影枚数を気にすることなく、必要な範囲を必要な解像度で撮影することができるようになる。
Claims (19)
- 一点から方向を変えて複数回撮影した画像を1枚に合成する機能を有する合成処理部を有し、
前記合成処理部は、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う
画像処理装置。 - 前記合成処理部は、
前記パラメータを抽出するときは、ひとつの境界に少なくとも3個のブロックマッチングを行い、最低4枚の境界について合成を行い、これが正確になるように補正係数を決めて行く
請求項1記載の画像処理装置。 - 前記合成処理部は、
パラメータが決まった後は、すべての境界に少なくとも1個のブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていく
請求項1記載の画像処理装置。 - 前記合成処理部は、
パラメータが決まった後は、すべての境界に少なくとも1個のブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていく
請求項2記載の画像処理装置。 - 前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項1記載の画像処理装置。 - 前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項4記載の画像処理装置。 - 前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項1記載の画像処理装置。 - 前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項4記載の画像処理装置。 - 前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項1記載の画像処理装置。 - 前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項8記載の画像処理装置。 - 前記合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項1記載の画像処理装置。 - 合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項10記載の画像処理装置。 - 撮像素子と、
前記撮像素子に被写体像を結像する光学系と、
前記撮像素子の出力画像信号を処理する画像処理装置と、を有し、
前記画像処理装置は、
一点から方向を変えて複数回撮影した画像を1枚に合成する機能を有する合成処理部を有し、
前記合成処理部は、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出し、当該パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行い、すべての境界について同時並列的にブロックマッチングの結果の評価を行い、すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う
カメラ装置。 - 前記合成処理部は、
基準画像を除く画像を平行移動して最も誤差が小さくなるように収束させる
請求項13記載のカメラ装置。 - 前記合成処理部は、
合成対象のすべての部分画像に対して周辺減光補正、コントラスト強調、彩度強調、ガンマ補正を一様に行う機能を有する
請求項13記載のカメラ装置。 - 前記合成処理部は、
合成後において、隣接する画像間の色の違いを減少させるため、すべての部分画像に対して色補正を独立に行う機能を有する
請求項13記載のカメラ装置。 - 前記合成処理部は、
合成後において、隣接する画像間の色の不連続を検知限界以下まで減少させるための色補正機能を有する
請求項13記載のカメラ装置。 - 一点から方向を変えて複数回撮影した画像を1枚に合成する画像処理方法であって、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出するステップと、
前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行うステップと、
すべての境界について同時並列的にブロックマッチングの結果の評価を行うステップと、
すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行うステップと
を有する画像処理方法。 - 一点から方向を変えて複数回撮影した画像を1枚に合成するため、コンピュータに、
選択した複数の画像を境界が重なるようにして、各境界においてブロックマッチングを行って各境界について合成を行って所定のパラメータを抽出する機能と、
前記パラメータに基づいて合成対象の全ての境界についてブロックマッチングを行う機能と、
すべての境界について同時並列的にブロックマッチングの結果の評価を行う機能と、
すべての境界の誤差が小さくなるように光軸の方向を更新して誤差を小さくしていくようにして合成を行う機能と
を実行させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006300917A JP4899803B2 (ja) | 2006-11-06 | 2006-11-06 | 画像処理装置、カメラ装置、画像処理方法、およびプログラム |
US11/977,403 US8699820B2 (en) | 2006-11-06 | 2007-10-24 | Image processing apparatus, camera apparatus, image processing method, and program |
CN2007101662606A CN101179644B (zh) | 2006-11-06 | 2007-11-06 | 图像处理装置和图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006300917A JP4899803B2 (ja) | 2006-11-06 | 2006-11-06 | 画像処理装置、カメラ装置、画像処理方法、およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008117235A true JP2008117235A (ja) | 2008-05-22 |
JP2008117235A5 JP2008117235A5 (ja) | 2009-12-24 |
JP4899803B2 JP4899803B2 (ja) | 2012-03-21 |
Family
ID=39405722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006300917A Expired - Fee Related JP4899803B2 (ja) | 2006-11-06 | 2006-11-06 | 画像処理装置、カメラ装置、画像処理方法、およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8699820B2 (ja) |
JP (1) | JP4899803B2 (ja) |
CN (1) | CN101179644B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010088085A (ja) * | 2008-10-03 | 2010-04-15 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP2010136303A (ja) * | 2008-12-08 | 2010-06-17 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP2010147635A (ja) * | 2008-12-17 | 2010-07-01 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP2012222669A (ja) * | 2011-04-11 | 2012-11-12 | Canon Inc | 画像処理装置およびその方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4962460B2 (ja) * | 2008-10-03 | 2012-06-27 | ソニー株式会社 | 撮像装置、撮像方法、およびプログラム |
JP2011119974A (ja) * | 2009-12-03 | 2011-06-16 | Sony Corp | パノラマ画像合成装置、パノラマ画像合成方法、及びプログラム |
JP5830328B2 (ja) | 2011-09-26 | 2015-12-09 | オリンパス株式会社 | 内視鏡用画像処理装置、内視鏡装置及び画像処理方法 |
CN103377372B (zh) * | 2012-04-23 | 2017-12-22 | 无锡维森智能传感技术有限公司 | 一种环视合成图重叠区域划分方法和环视合成图表示方法 |
CN104937924B (zh) * | 2013-05-31 | 2019-01-04 | 株式会社尼康 | 电子设备及控制方法 |
WO2018037920A1 (ja) * | 2016-08-26 | 2018-03-01 | 日本電気株式会社 | 画像処理装置、画像処理方法及びコンピュータ読み取り可能記録媒体 |
CN109983531A (zh) * | 2016-09-23 | 2019-07-05 | 堺显示器制品株式会社 | 生成***、生成方法和计算机程序 |
CN107169494B (zh) * | 2017-06-01 | 2018-07-20 | 中国人民解放军国防科学技术大学 | 基于手持终端的车牌图像分割校正方法 |
CN109697745A (zh) * | 2017-10-24 | 2019-04-30 | 富泰华工业(深圳)有限公司 | 障碍物透视方法及障碍物透视装置 |
CN108270952B (zh) * | 2017-11-21 | 2020-08-07 | 深圳市芯舞时代科技有限公司 | 一种双目摄像机影像色差的校正方法及*** |
CN110277057B (zh) * | 2019-06-28 | 2021-01-26 | 京东方科技集团股份有限公司 | 一种显示面板、信号处理方法及显示装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152895A (ja) * | 1993-11-29 | 1995-06-16 | Canon Inc | 画像処理方法及び装置 |
JP2001245133A (ja) * | 2000-02-29 | 2001-09-07 | Konica Corp | 画像読取装置及び画像形成装置 |
JP2002514359A (ja) * | 1996-07-17 | 2002-05-14 | サーノフ コーポレイション | モザイク画像を作成する方法及び装置 |
JP2005092822A (ja) * | 2003-09-19 | 2005-04-07 | Dainippon Printing Co Ltd | 画像補正装置および方法 |
JP2006121329A (ja) * | 2004-10-20 | 2006-05-11 | Fuji Xerox Co Ltd | 画像合成装置、画像合成方法、画像合成プログラムおよび記録媒体 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018349A (en) * | 1997-08-01 | 2000-01-25 | Microsoft Corporation | Patch-based alignment method and apparatus for construction of image mosaics |
US6486908B1 (en) * | 1998-05-27 | 2002-11-26 | Industrial Technology Research Institute | Image-based method and system for building spherical panoramas |
US7015954B1 (en) * | 1999-08-09 | 2006-03-21 | Fuji Xerox Co., Ltd. | Automatic video system using multiple cameras |
JP2001258933A (ja) | 2000-03-16 | 2001-09-25 | Kao Corp | 使い捨ておむつ |
JP2001358933A (ja) | 2000-06-15 | 2001-12-26 | Em Enterprise:Kk | 画像合成装置、画像合成方法および画像合成プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP3557168B2 (ja) | 2000-11-27 | 2004-08-25 | 三洋電機株式会社 | レンズ歪み係数算出装置および算出方法、レンズ歪み係数算出プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2002208005A (ja) * | 2001-01-12 | 2002-07-26 | Minolta Co Ltd | 画像処理装置、画像処理方法、画像処理プログラムおよび画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2003259110A (ja) | 2002-02-28 | 2003-09-12 | Fujitsu Ltd | 画像結合装置、その方法、プログラム |
US7813589B2 (en) * | 2004-04-01 | 2010-10-12 | Hewlett-Packard Development Company, L.P. | System and method for blending images into a single image |
KR101042638B1 (ko) * | 2004-07-27 | 2011-06-20 | 삼성전자주식회사 | 파노라마 영상 생성을 위한 디지털 촬상장치 및 그 생성방법 |
US20070024701A1 (en) * | 2005-04-07 | 2007-02-01 | Prechtl Eric F | Stereoscopic wide field of view imaging system |
-
2006
- 2006-11-06 JP JP2006300917A patent/JP4899803B2/ja not_active Expired - Fee Related
-
2007
- 2007-10-24 US US11/977,403 patent/US8699820B2/en active Active
- 2007-11-06 CN CN2007101662606A patent/CN101179644B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152895A (ja) * | 1993-11-29 | 1995-06-16 | Canon Inc | 画像処理方法及び装置 |
JP2002514359A (ja) * | 1996-07-17 | 2002-05-14 | サーノフ コーポレイション | モザイク画像を作成する方法及び装置 |
JP2001245133A (ja) * | 2000-02-29 | 2001-09-07 | Konica Corp | 画像読取装置及び画像形成装置 |
JP2005092822A (ja) * | 2003-09-19 | 2005-04-07 | Dainippon Printing Co Ltd | 画像補正装置および方法 |
JP2006121329A (ja) * | 2004-10-20 | 2006-05-11 | Fuji Xerox Co Ltd | 画像合成装置、画像合成方法、画像合成プログラムおよび記録媒体 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010088085A (ja) * | 2008-10-03 | 2010-04-15 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
US8767036B2 (en) | 2008-10-03 | 2014-07-01 | Sony Corporation | Panoramic imaging apparatus, imaging method, and program with warning detection |
JP2010136303A (ja) * | 2008-12-08 | 2010-06-17 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP4618370B2 (ja) * | 2008-12-08 | 2011-01-26 | ソニー株式会社 | 撮像装置、撮像方法、およびプログラム |
JP2010147635A (ja) * | 2008-12-17 | 2010-07-01 | Sony Corp | 撮像装置、撮像方法、およびプログラム |
JP2012222669A (ja) * | 2011-04-11 | 2012-11-12 | Canon Inc | 画像処理装置およびその方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4899803B2 (ja) | 2012-03-21 |
US20080118155A1 (en) | 2008-05-22 |
CN101179644A (zh) | 2008-05-14 |
US8699820B2 (en) | 2014-04-15 |
CN101179644B (zh) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4899803B2 (ja) | 画像処理装置、カメラ装置、画像処理方法、およびプログラム | |
US10298864B2 (en) | Mismatched foreign light detection and mitigation in the image fusion of a two-camera system | |
JP4645746B2 (ja) | 画像処理装置、画像処理方法および撮像装置 | |
JP4322781B2 (ja) | 撮像装置 | |
JP6812862B2 (ja) | 画像処理システム、撮像装置、画像処理方法及びプログラム | |
JP2009290827A (ja) | 画像処理装置および画像処理方法 | |
CN110365961B (zh) | 图像去马赛克装置及方法 | |
JP4811462B2 (ja) | 画像処理方法、画像処理プログラム、画像処理装置、及び撮像装置 | |
US20120008005A1 (en) | Image processing apparatus, image processing method, and computer-readable recording medium having image processing program recorded thereon | |
WO2005106789A1 (ja) | 階調補正装置、携帯端末機器、撮像装置、携帯電話、階調補正方法及びプログラム | |
CN112969005A (zh) | 用于处理图像的方法和*** | |
JP2006135745A (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JP5978949B2 (ja) | 画像合成装置及び画像合成用コンピュータプログラム | |
WO2005002240A1 (ja) | 表示特性補正データの算出方法、表示特性補正データの算出プログラム、表示特性補正データの算出装置 | |
JP2010183127A (ja) | 画像処理装置、画像処理方法および撮像装置 | |
TWI703872B (zh) | 影像色彩還原與增強電路 | |
US20220044349A1 (en) | Multi-scale warping circuit for image fusion architecture | |
TWI599809B (zh) | 鏡頭模組陣列、影像感測裝置與數位縮放影像融合方法 | |
US10395403B1 (en) | Cylindrical panorama | |
CN113379609A (zh) | 一种图像处理方法、存储介质及终端设备 | |
JP2019179463A (ja) | 画像処理装置、その制御方法、プログラム、記録媒体 | |
JP2010016580A (ja) | 画像処理装置および画像処理方法 | |
JP6671943B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP6696596B2 (ja) | 画像処理システム、撮像装置、画像処理方法およびプログラム | |
JP2019075716A (ja) | 画像処理装置、画像処理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091104 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110712 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110905 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20111206 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111219 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4899803 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150113 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |