ディレクトリ
表示画像(CV :: namedWindosとCV ::関数imshow)
画像は(CV ::関数imreadで)ロードされ、
関数imread関数は、最初のパラメータは、画像のファイル名を表すマットオブジェクトにイメージファイルをロードすることです
第2のパラメータは、3つのパラメータの一般的な値について何ロード画像の種類、サポートを示します
- IMREAD_UNCHANGED(<0)は変更せず、元の負荷を表します
- IMREAD_GRAYSCALE(0)が来るようにローディングオリジナルのグレースケール画像を表します。
- IMREAD_COLORは(> 0)が来るように、元のRGB画像がロードされる表します
注:OpenCVのサポートはJPG、PNG、TIFFおよびその他の一般的な画像ファイル形式をロード
表示画像(CV :: namedWindosとCV ::関数imshow)
namedWindos OpenCVの関数は、ウィンドウを作成することです、それは自動的でのOpenCVのリリースによって作成され、あなたはそれを破壊するために行う必要はありません。
一般的な使用namedWindow( "ウィンドウタイトル"、WINDOW_AUTOSIZE)
- WINDOW_AUTOSIZEは自動的に画像サイズ、表示サイズがウィンドウに応じて、ウィンドウサイズを人為的に変更することができません
- QTと統合WINDOW_NORMALは、使用しますが、それはあなたがウィンドウサイズを変更することができます。
ウィンドウ名に応じて指定されたウィンドウの関数imshow画像アップ最初のパラメータは、ウィンドウの名前であり、表示され、2番目のパラメータは、オブジェクトのマットであります
画像を変更(CV :: cvtColor)
cvtColor関数は別の色空間に一つの色空間から画像を変換することです。3つのパラメータがあります。
- 最初のパラメータは、ソース画像を示します
- 第2のパラメータは、色空間変換後の画像を示しています
- COLOR_BGR2HLS、COLOR_BGR2GRAY等:3番目のパラメータは、例えば、ソースとデスティネーション色空間を示しています
cvtColor(画像、gray_image、COLOR_BGR2GRAY)。
画像の保存(CV ::関数imwrite)
指定されたディレクトリパスにイメージファイルを保存します
唯一の8ビット、16ビットのPNG、JPG、TIFFファイル形式
そして、画像BGR単一チャネルまたは3チャネルのみ、この方法で保存することができます
PNG形式で保存された時間は、アルファチャネル画像圧縮パラメータを指定することができる保存することができ
#include<opencv2\opencv.hpp>
#include<highgui.h>
using namespace cv;
int main(int argc, char** argv)
{
// read image
Mat image = imread("test.jpg");
// 对图像进行所有像素用 (255- 像素值)
Mat invertImage;
image.copyTo(invertImage);
// 获取图像宽、高
int channels = image.channels();
int rows = image.rows;
int cols = image.cols * channels;
if (image.isContinuous()) {
cols *= rows;
rows = 1;
}
// 每个像素点的每个通道255取反
uchar* p1;
uchar* p2;
for (int row = 0; row < rows; row++) {
p1 = image.ptr<uchar>(row);// 获取像素指针
p2 = invertImage.ptr<uchar>(row);
for (int col = 0; col < cols; col++) {
*p2 = 255 - *p1; // 取反
p2++;
p1++;
}
}
// create windows
namedWindow("My Test", CV_WINDOW_AUTOSIZE);
namedWindow("My Invert Image", CV_WINDOW_AUTOSIZE);
// display image
imshow("My Test", image);
imshow("My Invert Image", invertImage);
// 关闭
waitKey(0);
destroyWindow("My Test");
destroyWindow("My Invert Image");
return 0;
}