利用OpenCV判斷是否加載圖片的兩種方法
OpenCV判斷是否加載圖片問題
OpenCV加載圖片是圖像處理最基本的操作,但有的時候我們加載圖片會因為圖片路徑不正確或者沒有圖片等原因而報錯,經(jīng)常寫代碼的憑經(jīng)驗就知道是哪錯了,但初學者一般是看不懂這些錯誤,就會很惱火了,如果加個判斷語句就會不一樣了啥,如果是圖片路徑的原因而導致加載不到圖片,它會在終端顯示你要輸出的錯誤信息,這樣一看就很清楚了。
【方法一】
src = imread( "1.jpg" ,CV_LOAD_IMAGE_COLOR ); //注意路徑得換成自己的
//判斷是否加載圖片
if(!src.data)
{
cout<<"Picture loading failed !"<<endl;
return -1;
}注意:判斷里面是!src.data,有感嘆號,沒括號的,它不是函數(shù)。
【方法二】
src = imread( "1.jpg" ,CV_LOAD_IMAGE_COLOR ); //注意路徑得換成自己的
if(src.empty())
{
cout<<"Picture loading failed !"<<endl;
return -1;
}注意:判斷里面是src.empty(),這里就調(diào)用了一個函數(shù),輸代碼的時候要仔細。
最后放張圖:

OpenCV圖片的加載顯示和保存
圖片的加載與顯示
import cv2 as cv
import numpy as np
'''
cv2.imread()
imread函數(shù)有兩個參數(shù),第一個參數(shù)是圖片路徑,第二個參數(shù)表示讀取圖片的形式,有三種:
cv2.IMREAD_COLOR:加載彩色圖片,這個是默認參數(shù),可以直接寫1。
cv2.IMREAD_GRAYSCALE:以灰度模式加載圖片,可以直接寫0。
cv2.IMREAD_UNCHANGED:包括alpha,可以直接寫-1。
而imread函數(shù)的第二個參數(shù)不寫就是默認讀原始圖片
imshow()函數(shù):
有兩個參數(shù),第一個參數(shù)為顯示的窗口名,第二個為顯示的圖像
'''
im=cv.imread('C:/Users/ASUS/Desktop/rgb2gray/fruit.png')#讀取原始圖片
im2=cv.imread('C:/Users/ASUS/Desktop/rgb2gray/fruit.png',cv.IMREAD_COLOR)#讀取RGB彩色圖片
cv.imshow('color image',im)
cv.imshow('color image2',im2)
cv.waitKey(0)運行結(jié)果

可以看到兩種形式是一樣的
另:cv2.waitKey()函數(shù)用法:
waitKey()–是在一個給定的時間內(nèi)(單位ms)等待用戶按鍵觸發(fā);
如果用戶沒有按下鍵,則接續(xù)等待(循環(huán))
常見:設(shè)置waitKey(0),則表示程序會無限制的等待用戶的按鍵事件
一般在imgshow的時候,如果設(shè)置waitKey(0),代表按任意鍵繼續(xù)
圖像的保存
cv.imwrite('lena2.jpg',im)
cv.imwrite('lina_jpeg_quality_90.jpg',im,[int(cv.IMWRITE_JPEG_QUALITY),90])
cv.imwrite('line_png_compress_2.png',im,[int(cv.IMWRITE_PNG_COMPRESSION),2])cv2.imwrite函數(shù)的第三個參數(shù)指定保存圖像的質(zhì)量或者壓縮率。對于jpeg,其表示圖像的質(zhì)量,0-100,數(shù)值越大圖像質(zhì)量越好,默認值是95。對于png,設(shè)置的值壓縮率,0-9,數(shù)值越大壓縮率越高,圖像越小。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux環(huán)境部署清華大學大模型最新版 chatglm2-6b 圖文教程
這篇文章主要介紹了linux環(huán)境部署清華大學大模型最新版 chatglm2-6b ,結(jié)合實例形式詳細分析了Linux環(huán)境下chatglm2-6b部署相關(guān)操作步驟與注意事項,需要的朋友可以參考下2023-07-07
python實現(xiàn)sublime3的less編譯插件示例
這篇文章主要介紹了python實現(xiàn)sublime3的less編譯插件示例的相關(guān)資料2014-04-04
python scipy.spatial.distance 距離計算函數(shù) ?
本文主要介紹了python scipy.spatial.distance 距離計算函數(shù),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
python實現(xiàn)aes加密及pycryptodome庫使用
AES算法是高級加密標準,它是一種對稱加密算法,AES只有一個密鑰,這個密鑰既用來加密,也用于解密,這篇文章主要給大家介紹了關(guān)于python實現(xiàn)aes加密及pycryptodome庫使用的相關(guān)資料,需要的朋友可以參考下2023-10-10
python學習基礎(chǔ)之循環(huán)import及import過程
python中的import語句是用來導入模塊的,下面這篇文章主要給大家介紹了關(guān)于python學習基礎(chǔ)之循環(huán)import及import過程的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2018-04-04
Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型
這篇文章主要介紹了Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
用python寫一個windows下的定時關(guān)機腳本(推薦)
由于本人經(jīng)常使用筆記本共享WiFi,但是又不想筆記本開機一夜,每次都是使用dos命令關(guān)機,感覺好麻煩,然后小編想到用python寫一個定時關(guān)機的腳本,具體實例代碼請參考本文2017-03-03

