6 Şubat 2017 Pazartesi

OpenCV Resim Yükleme Yazma

Giriş
Resim yükleme ve yazma işleleri için imread ve imwrite metodlarını kullanırız. Java'daki kardeşi için Imgcodecs Sınıfı yazısına bakınız.

imencode metodu
Örnek ver

imread - path
Alışılagelmişin dışında, renkleri RGB yerine BGR olarak yükler. Açıklaması şöyle
Note In the case of color images, the decoded images will have the channels stored in B G R order.
Şöyle yaparız.
cv::Mat image = cv::imread("./sample.png");
imread - path + color
İkinci parametresinin açıklaması şöyle
CV_LOAD_IMAGE_ANYDEPTH - If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit.
CV_LOAD_IMAGE_COLOR - If set, always convert image to the color one
CV_LOAD_IMAGE_GRAYSCALE - If set, always convert image to the grayscale one
Daha kolay şöyle hatırlarız.
>0 Return a 3-channel color image. (same as CV_LOAD_IMAGE_COLOR)
=0 Return a grayscale image. (same as CV_LOAD_IMAGE_GRAYSCALE)
<0 Return the loaded image as is (with alpha channel). (same as CV_LOAD_IMAGE_ANYDEPTH)
ayndepth
< 0  yani resmi olduğu gibi yüklemek için şöyle yaparız.
Mat src = imread("blob.png", -1);
grascale
Örnek 1
= 0 yani resim renkli olsa bile gri olarak yüklemek için şöyle yaparız.
Mat src = imread(filename, CV_LOAD_IMAGE_GRAYSCALE);
Ya da şöyle yaparız.
Mat src = imread("blob.png", 0);
Ya da şöyle yaparız.
cv::Mat inputImage = cv::imread("testImage.png", cv::IMREAD_GRAYSCALE);
Örnek 2
Renkli yükleyip daha sonra grayscale yapmak mümkün. Şöyle yaparız.
// Load the image
cv::Mat inputImage = cv::imread("testImage.png");
// Convert to single channel (grayscale)
cv::cvtColor(inputImage, inputImage, cv::COLOR_BGR2GRAY);
Tabi bunun yerine direkt grayscale yüklemek daha kolay.

color
>0 yani Renkli yüklemek için şöyle yaparız.
Mat im = imread(filename,CV_LOAD_IMAGE_COLOR);
imwrite metodu
Şöyle yaparız.
Mat src = ...;
imwrite("test", src);

Hiç yorum yok:

Yorum Gönder