Opencv簡(jiǎn)單圖像操作方法實(shí)戰(zhàn)
更新時(shí)間:2024年02月18日 15:23:04 作者:stoAir
OpenCV是一個(gè)開源的計(jì)算機(jī)視覺(jué)庫(kù),它提供了一系列豐富的圖像處理和計(jì)算機(jī)視覺(jué)算法,這篇文章主要給大家介紹了關(guān)于Opencv簡(jiǎn)單圖像操作方法的相關(guān)資料,需要的朋友可以參考下
Opencv
一、讀取圖片
1.imshow
Mat imread(const string& filename, intflags=1 );
flags:
enum
{
/* 8bit, color or not */
CV_LOAD_IMAGE_UNCHANGED =-1,
/* 8bit, gray */
CV_LOAD_IMAGE_GRAYSCALE =0,
/* ?, color */
CV_LOAD_IMAGE_COLOR =1,
/* any depth, ? */
CV_LOAD_IMAGE_ANYDEPTH =2,
/* ?, any color */
CV_LOAD_IMAGE_ANYCOLOR =4
};
Mat image0=imread("dota.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);//載入最真實(shí)的圖像
Mat image1=imread("dota.jpg",0);//載入灰度圖
Mat image2=imread("dota.jpg",199);//載入3通道的彩色圖像
Mat logo=imread("dota_logo.jpg");//載入3通道的彩色圖像
- CV_LOAD_IMAGE_UNCHANGED,這個(gè)標(biāo)識(shí)在新版本中被廢置了,忽略。
- CV_LOAD_IMAGE_ANYDEPTH- 如果取這個(gè)標(biāo)識(shí)的話,若載入的圖像的深度為16位或者32位,就返回對(duì)應(yīng)深度的圖像,否則,就轉(zhuǎn)換為8位圖像再返回。
- CV_LOAD_IMAGE_COLOR- 如果取這個(gè)標(biāo)識(shí)的話,總是轉(zhuǎn)換圖像到彩色一體
- CV_LOAD_IMAGE_GRAYSCALE- 如果取這個(gè)標(biāo)識(shí)的話,始終將圖像轉(zhuǎn)換成灰度
- flags >0返回一個(gè)3通道的彩色圖像。
- flags =0返回灰度圖像。
- flags <0返回包含Alpha通道的加載的圖像。
2.namedWindow
void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );
- WINDOW_NORMAL設(shè)置了這個(gè)值,用戶便可以改變窗口的大小(沒(méi)有限制)
- WINDOW_AUTOSIZE如果設(shè)置了這個(gè)值,窗口大小會(huì)自動(dòng)調(diào)整以適應(yīng)所顯示的圖像,并且不能手動(dòng)改變窗口大小。
- WINDOW_OPENGL 如果設(shè)置了這個(gè)值的話,窗口創(chuàng)建的時(shí)候便會(huì)支持OpenGL。
3.imshow
void imshow(const string& winname, InputArray mat);
4.效果圖
c++

python

二、圖像操作
python
import cv2 as cv
import numpy as np
image = cv.imread("/home/stoair/Opencv/Images/1.png", 4)
cv.namedWindow("initial",cv.WINDOW_NORMAL)
cv.namedWindow("after",cv.WINDOW_NORMAL)
height = image.shape[0]
width = image.shape[1]
cv.imshow("initial",image)
for i in range(height):
for j in range(width):
(b, g, r) = image[i, j]
ave = b/3 + g/3 + r/3
image[i, j] = (ave, ave, ave)
cv.imshow("after",image)
cv.waitKey(0)

c++
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
Mat image0 = imread("/home/stoair/Opencv/Images/1.png", 4);
namedWindow("initial", WINDOW_NORMAL);
namedWindow("change", WINDOW_NORMAL);
imshow("initial", image0);
int height = image0.rows;
int width = image0.cols;
for(int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
unsigned char b = image0.at<Vec3b>(i, j)[0];
unsigned char g = image0.at<Vec3b>(i, j)[1];
unsigned char r = image0.at<Vec3b>(i, j)[2];
unsigned char ave = b/3 + g/3 +r/3;
image0.at<Vec3b>(i, j)[0] = ave;
image0.at<Vec3b>(i, j)[1] = ave;
image0.at<Vec3b>(i, j)[2] = ave;
}
}
imshow("change", image0);
waitKey(0);
return 0;
}總結(jié)
到此這篇關(guān)于Opencv簡(jiǎn)單圖像操作方法的文章就介紹到這了,更多相關(guān)Opencv圖像操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows下用py2exe將Python程序打包成exe程序的教程
這篇文章主要介紹了Windows下用py2exe將Python程序打包成exe程序的教程,文中主要針對(duì)Python3.x版本進(jìn)行說(shuō)明,需要的朋友可以參考下2015-04-04
python做聲音識(shí)別的實(shí)現(xiàn)示例
本文主要介紹了python做聲音識(shí)別的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-10-10
python 利用瀏覽器 Cookie 模擬登錄的用戶訪問(wèn)知乎的方法
今天小編就為大家分享一篇python 利用瀏覽器 Cookie 模擬登錄的用戶訪問(wèn)知乎的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07

