python OpenCV的imread不能讀取中文路徑問題及解決
作者:Dragon水魅
這篇文章主要介紹了python OpenCV的imread不能讀取中文路徑問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
OpenCV的imread不能讀取中文路徑問題
import numpy as np import cv2 cv_img = cv2.imdecode(np.fromfile(jpg_path, dtype=np.uint8), -1) # 讀取8位圖像
OpenCV imread()函數(shù) (從文件加載圖像)
def imread(filename, flags=None): # real signature unknown; restored from __doc__ """ imread(filename[, flags]) -> retval . @brief Loads an image from a file. 從文件加載圖像。 . . @anchor imread . . The function imread loads an image from the specified file and returns it. If the image cannot be . read (because of missing file, improper permissions, unsupported or invalid format), the function . returns an empty matrix ( Mat::data==NULL ). 該函數(shù)imread從指定的文件加載圖像并返回它。 如果無法讀取圖像(由于缺少文件,權(quán)限不正確,格式不受支持或格式無效), 該函數(shù)將返回一個空矩陣(Mat :: data == NULL)。 . . Currently, the following file formats are supported: 當前,支持以下文件格式: . . - Windows bitmaps - \*.bmp, \*.dib (always supported) . - JPEG files - \*.jpeg, \*.jpg, \*.jpe (see the *Note* section) . - JPEG 2000 files - \*.jp2 (see the *Note* section) . - Portable Network Graphics - \*.png (see the *Note* section) . - WebP - \*.webp (see the *Note* section) . - Portable image format - \*.pbm, \*.pgm, \*.ppm \*.pxm, \*.pnm (always supported) . - PFM files - \*.pfm (see the *Note* section) . - Sun rasters - \*.sr, \*.ras (always supported) . - TIFF files - \*.tiff, \*.tif (see the *Note* section) . - OpenEXR Image files - \*.exr (see the *Note* section) . - Radiance HDR - \*.hdr, \*.pic (always supported) . - Raster and Vector geospatial data supported by GDAL (see the *Note* section) . . @note . - The function determines the type of an image by the content, not by the file extension. 該功能通過內(nèi)容而不是文件擴展名確定圖像的類型 . - In the case of color images, the decoded images will have the channels stored in **B G R** order. 對于彩色圖像,解碼后的圖像將具有以** B G R **順序存儲的通道。 . - When using IMREAD_GRAYSCALE, the codec's internal grayscale conversion will be used, if available. . Results may differ to the output of cvtColor() 使用IMREAD_GRAYSCALE時,將使用編解碼器的內(nèi)部灰度轉(zhuǎn)換(如果有)。 結(jié)果可能與cvtColor()的輸出不同 . - On Microsoft Windows\* OS and MacOSX\*, the codecs shipped with an OpenCV image (libjpeg, . libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs, . and TIFFs. On MacOSX, there is also an option to use native MacOSX image readers. But beware . that currently these native image loaders give images with different pixel values because of . the color management embedded into MacOSX. 在Microsoft Windows \ * OS和MacOSX \ *上, 默認使用OpenCV映像附帶的編解碼器(libjpeg,libpng,libtiff和libjasper)。 因此,OpenCV始終可以讀取JPEG,PNG和TIFF。 在MacOSX上,還可以選擇使用本機MacOSX圖像讀取器。 但是請注意,由于MacOSX中嵌入了色彩管理,當前這些本機圖像加載器會為圖像提供不同的像素值。 . - On Linux\*, BSD flavors and other Unix-like open-source operating systems, OpenCV looks for . codecs supplied with an OS image. Install the relevant packages (do not forget the development . files, for example, "libjpeg-dev", in Debian\* and Ubuntu\*) to get the codec support or turn . on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake. 在Linux \ *,BSD版本和其他類似Unix的開源操作系統(tǒng)上,OpenCV會尋找OS映像隨附的編解碼器。 安裝相關(guān)的軟件包(不要忘記在Debian \ *和Ubuntu \ *中忘記開發(fā)文件, 例如“ libjpeg-dev”)以獲得編碼解碼器支持或在CMake中打開OPENCV_BUILD_3RDPARTY_LIBS標志。 . - In the case you set *WITH_GDAL* flag to true in CMake and @ref IMREAD_LOAD_GDAL to load the image, . then the [GDAL](http://www.gdal.org) driver will be used in order to decode the image, supporting . the following formats: [Raster](http://www.gdal.org/formats_list.html), . [Vector](http://www.gdal.org/ogr_formats.html). 如果您在CMake中將* WITH_GDAL *標志設(shè)置為true并使用@ref IMREAD_LOAD_GDAL加載圖像,則將使用[GDAL](http://www.gdal.org)驅(qū)動程序?qū)D像進行解碼,以支持 以下格式:[Raster](http://www.gdal.org/formats_list.html)、[Vector](http://www.gdal.org/ogr_formats.html)。 . - If EXIF information are embedded in the image file, the EXIF orientation will be taken into account . and thus the image will be rotated accordingly except if the flag @ref IMREAD_IGNORE_ORIENTATION is passed. 如果將EXIF信息嵌入到圖像文件中,則將考慮EXIF方向, 因此,除非傳遞了@ref IMREAD_IGNORE_ORIENTATION標志,否則圖像將相應(yīng)旋轉(zhuǎn)。 . - Use the IMREAD_UNCHANGED flag to keep the floating point values from PFM image. 使用IMREAD_UNCHANGED標志保留PFM圖像中的浮點值。 . - By default number of pixels must be less than 2^30. Limit can be set using system . variable OPENCV_IO_MAX_IMAGE_PIXELS 默認情況下,像素數(shù)必須小于2 ^ 30。 可以使用系統(tǒng)變量OPENCV_IO_MAX_IMAGE_PIXELS設(shè)置限制 . . @param filename Name of file to be loaded. 要加載的文件名。 . @param flags Flag that can take values of cv::ImreadModes 可以采用cv :: ImreadModes值的標志 """ pass
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。