上小學的時候看了很多遍七龍珠的小本連環畫,也在學校旁邊的借書店借到過那種合訂的大本。當時一直以為作者是中國人,還很奇怪為什麼有人叫鳥山明那麼怪的名字。知道真相的我眼淚掉下來:(。
連環畫濾鏡主要算法思想:
1.用如下公式計算新的RGB值:
R = (|2*g-b+r|*r)>>8;
G = (|2*b-g+r|*r)>>8;
B = (|2*b-g+r|*r)>>8;
右移8位相當於除以256.
2.用平均值法計算灰度值:
Gray = (R+G+B)/ 3
3.設定新的RGB值:
R= Gray + 10;
G = Gray + 10;
B= Gray;
RGB的值要約束在0與255之間。
完整代碼如下:
#include
#include
using namespace cv;
using namespace std;
void liHuanHuaFilter(Mat &srcImage);
int main(){
Mat srcImage = imread("longzhu.jpg");
if(!srcImage.data){
cout<<"讀入圖片錯誤!"<(j);
for(int i = 0;i>8;
int G = (abs(2*b-g+r)*r)>>8;
int B = (abs(2*b-g+r)*r)>>8;
R = max(0,min(R,255));
G = max(0,min(G,255));
B = max(0,min(B,255));
int gray = (R+G+B)/3;
R = min(255,gray + 10);
data[i*3+2] = R;
data[i*3+1] = R;
data[i*3] = gray;
}
}
imshow("連環畫濾鏡",srcImage);
}
來張龍珠的效果圖: