opencv建立負片

2021-09-23 01:57:31 字數 2279 閱讀 1183

現將rgb模式轉為gray模式,變為單通道,然後反轉,就會出現負片的效果

#include#includeusing namespace cv;

using namespace std;

int main(int argc, char** ar**)

namedwindow("input", window_autosize);

imshow("input", src);//顯示原影象

cvtcolor(src, gray_src, cv_bgr2gray);//cvtcolor cv_bgr2gray 將原圖轉換為灰度模式

imshow("output", gray_src);//顯示灰度影象

//單通道

int height = gray_src.rows;//高度

int width = gray_src.cols;//寬度

for (int row = 0; row < height; row++)

} namedwindow("output_gray", window_autosize);

imshow("output_gray", gray_src); //顯示負片效果

waitkey(0);

return 0;

}

如果原圖是rgb模式,那就是三個通道,可以通過設定不同的值,出現不同的效果。比如美圖里的「阿寶色」之類的效果。

#include#includeusing namespace cv;

using namespace std;

int main(int argc, char** ar**)

namedwindow("input", window_autosize);

imshow("input", src);

//三通道

dst = src.clone();

int height = dst.rows;//高度

int width = dst.cols;//寬度

for (int row = 0; row < height; row++)

} namedwindow("output_dst", window_autosize);

imshow("output_dst", dst);

waitkey(0);

return 0;

}

使用bitwise_not()來求反,灰度影象的負片效果:

#include#includeusing namespace cv;

using namespace std;

int main(int argc, char** ar**)

namedwindow("input", window_autosize);

imshow("input", src);

cvtcolor(src, gray_src, cv_bgr2gray);

imshow("output", gray_src);

dst = src.clone();

bitwise_not(gray_src, dst);//求反,也就是負片效果

namedwindow("output", window_autosize);

imshow("output", dst);

waitkey(0);

return 0;

}

灰度影象的另一種方法,但是還是不太懂

#include#includeusing namespace cv;

using namespace std;

int main(int argc, char** ar**)

namedwindow("input", window_autosize);

imshow("input", src);

dst = src.clone();

cvtcolor(src, gray_src, cv_bgr2gray);

int height = dst.rows;//高度

int width = dst.cols;//寬度

for (int row = 0; row < height; row++) }

namedwindow("output", window_autosize);

imshow("output", gray_src);

waitkey(0);

return 0;

}

eclipse 建立opencv工程

新增路徑 在環境變數 ld library path 中指明庫的搜尋路徑。export ld library path home pt ptwork gitwork opencv 3.3.0 build lib ld library path可以用下面的命令檢視 ld libray path 的設定...

opencv建立Mat物件

在opencv中引入了mat類。mat類是乙個非常優秀的影象類,它同時也是乙個通用的矩陣類,可以用來建立和操作多維矩陣。mat類裡面定義了許多建構函式,可以很方便地根據要求建立mat物件。常使用的建構函式有 1 mat mat 無引數建構函式 2 mat mat int rows,int cols,...

OpenCV中建立Iplimage的方法

1,如果是從新創造乙個 iplimage 則用iplimage cvcreateimage cvsize size,int depth,int channels 它建立頭並分配資料。注 當不再使用這個新影象時,要呼叫 void cvreleaseimage iplimage image 將它的頭和影...