現在地 >> メニュー >> サンプルコード::OpenCV >> 鮮鋭化フィルタ

問題


画像をグレイスケールとして読み込んで、
次の3×3鮮鋭化フィルタをかけよ。

 -1,-1,-1
 -1, 9,-1
 -1,-1,-1

画像


答え


#include <cv.h>
#include <highgui.h>
#include <cstdio>


float data[3][3] =
{
{-1,-1,-1},
{-1, 9, -1},
{-1, -1, -1}
};

int main( int argc, char **argv)
{

IplImage *image = cvLoadImage( "test2.jpg", CV_LOAD_IMAGE_GRAYSCALE);
if(image ==NULL)
{
printf("File not found\n");
exit(0);
}


CvMat kernel = cvMat (3,3, CV_32F, &data[0]); //先頭アドレスを渡す
cvFilter2D (image, image, &kernel);


cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",image);


cvWaitKey(0);


cvReleaseImage( & image);
cvDestroyWindow("window");


return 0;
}

メモ


カラーも気にせずにできるっぽい。


以下が一般的な「鮮鋭化フィルタ」

  0, -k, 0
 -k, 1+4K, -k
  0, -k, 0

または、

 -k, -k, -k
 -k, 1+8k, -k
 -k, -k, -k

ただし、k > 0。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます