OpenCVを使ってLenaさんをぼかす2にする。(0008)
Lenaさんぼかしの2回めです。 えせガウスぼかし??
//画面をだすよ void display(cv::Mat image) { //以前の記事をみてね!! } int main(int argc, char** argv) { //lenaさん登場!! cv::Mat lena = cv::imread("lena.jpg"); //lenaさん白黒レトロ cv::cvtColor(lena, lena, CV_RGB2GRAY); int cols = lena.cols; int rows = lena.rows; //lenaさんと同じサイズの画像 cv::Mat image = cv::Mat::zeros(cols, rows, CV_8UC1); uchar up,down,left,right; uchar upleft,downleft; uchar upright,downright; uchar anchor; for (int j = 1; j < rows - 1; j++) { for (int i = 1; i < cols - 1; i++) { up = lena.at<uchar>(j - 1, i); down = lena.at<uchar>(j + 1, i); left = lena.at<uchar>(j, i - 1); right = lena.at<uchar>(j, i + 1); upleft = lena.at<uchar>(j - 1, i-1); upright = lena.at<uchar>(j - 1, i+1); downleft = lena.at<uchar>(j + 1, i-1); downright = lena.at<uchar>(j + 1, i+1); anchor = lena.at<uchar>(j, i); image.at<uchar>(j, i) = cv::saturate_cast<uchar>( anchor*4/16 +up*2/16 +down*2/16 +left*2/16 +right*2/16 +upleft*1/16 +upright*1/16 +downleft*1/16 +downright*1/16 ); } } //画面に出して!! display(image); }
オリジナル
ぼかし2 (あんまり変わらん!! 目の回りはエッジがシャープ)
参考ぼかし1