Robię manipulację obrazem na obrazach png. Mam następujący problem. Po zapisaniu obrazu z funkcją imwrite(), rozmiar obrazu zostaje zwiększony. Na przykład poprzedni obraz to 847 KB, po zapisaniu staje się 1,20 MB. Oto kod. Właśnie przeczytałem obraz, a następnie go zapisałem, ale jego rozmiar został zwiększony. Próbowałem ustawić parametry kompresji, ale to nie pomaga.Imwrite OpenCV zwiększa rozmiar obrazu png
Mat image;
image = imread("5.png", -1);
vector<int> compression_params;
compression_params.push_back(CV_IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);
compression_params.push_back(0);
imwrite("output.png",image,compression_params);
Co może być problemem? Proszę o pomoc. Dzięki.
Mam ten sam problem i myślę, że to zależy od bibliotek używanych do kompresowania oryginalnego obrazu i biblioteki png używanej przez OpenCV. –
co to jest -1 w imread? Dlaczego po prostu nie użyjesz imread ("5.png")? –
przy ustawianiu drugiego parametru na -1, imread odczyta przezroczysty obraz PNP, w przeciwnym razie nie zwróci kanału alfa obrazu png – Karmar