OpenCVの嘉志剛教師ビデオ学習-1

ディレクトリ

画像は(CV ::関数imreadで)ロードされ、

表示画像(CV :: namedWindosとCV ::関数imshow)

画像を変更(CV :: cvtColor)

画像の保存(CV ::関数imwrite)


画像は(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;
}

 

公開された11元の記事 ウォンの賞賛0 ビュー276

おすすめ

転載: blog.csdn.net/weixin_41769570/article/details/104732776