日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

(CODE)计算机视觉引论及数字成像系统

發(fā)布時(shí)間:2023/12/14 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (CODE)计算机视觉引论及数字成像系统 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

“Hello, world! ”程序

import cv2 as cvimg = cv.imread(r'G:\test\images\lena.jpg')#lena圖像cv.imshow('Hello World!!', img)#顯示圖像cv.waitKey(4000)#等待 cv.destroyAllWindows()#關(guān)閉 ''' imread()讀入一幅圖像 imshow()顯示圖像 '''

圖像改變大小、平滑、閾值化

'''高斯模糊,尺寸,灰度,閾值化''' import cv2 as cvfilename = r'G:\test\images\lena.jpg' img = cv.imread(filename) #高斯模糊 imgGauss = cv.GaussianBlur(img, (1, 1), 0) imgGauss1 = cv.GaussianBlur(img, (5, 5), 0) imgGauss2 = cv.GaussianBlur(img, (5, 5), 1000) imgGauss3 = cv.GaussianBlur(img, (9, 9), 0) #圖像大小 image1 = cv.resize(img, (int(img.shape[1]/2), int(img.shape[0]/2))) image2 = cv.pyrDown(image1) image3 = cv.pyrUp(img) #灰度,閾值化,二值化 gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) _ ,gray1 = cv.threshold(gray, 120, 0xff, cv.THRESH_BINARY) _ ,gray2 = cv.threshold(gray, 60, 0xff, cv.THRESH_BINARY) _ ,gray3 = cv.threshold(gray, 180, 0xff, cv.THRESH_BINARY)cv.imshow("source image", img) ''' cv.imshow("Gaussian filtered image1,1,0", imgGauss) cv.imshow("Gaussian filtered image5,5,0", imgGauss1) cv.imshow("Gaussian filtered image5,5,10", imgGauss2) cv.imshow("Gaussian filtered image9,9,0", imgGauss3)cv.imshow("half size", image1) cv.imshow("quarter size", image2) cv.imshow("double size", image3) ''' cv.imshow("gray", gray) cv.imshow("threshold_gray1", gray1) cv.imshow("threshold_gray2", gray2) cv.imshow("threshold_gray3", gray3)cv.waitKey() cv.destroyAllWindows()

高斯平滑

dst = cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])
src = 輸入圖像;圖像可以具有任何數(shù)量的信道,其獨(dú)立地處理的,但深度應(yīng)CV_8U,CV_16U,CV_16S,CV_32F或CV_64F
dst = 輸出與圖像大小和類型相同的圖像src
ksize = 高斯核大小
sigmaX = X方向上的高斯核標(biāo)準(zhǔn)偏差
sigmaY = Y方向上的高斯核標(biāo)準(zhǔn)差
如果 sigmaY 為零,則將其設(shè)置為等于 sigmaX
如果兩個(gè)西格瑪均為零,則分別根據(jù)ksize.width 和 ksize.height 進(jìn)行計(jì)算
完全控制的結(jié)果,無(wú)論這一切的語(yǔ)義未來(lái)可能的修改,建議指定所有的ksize,sigmaX和sigmaY
borderType = 像素外推方法(borderInterpolate()有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn)link )
img = cv2.GaussianBlur(src, (blur1, blur2), 0)
src = 要進(jìn)行濾波的原圖像
(blur1,blur2)= 高斯核的大小,blur1和blur2的選取一般是奇數(shù),blur1和blur2的值可以不同
參數(shù)0表示標(biāo)準(zhǔn)差取0
當(dāng)blur1=blur2=1時(shí),相當(dāng)于不對(duì)原始圖像做操作
blur1和blur2越大,圖像的模糊程度越大
但不是blur1和blur2越大越好,blur1和blur2太大,不僅會(huì)濾除噪音,還會(huì)平滑掉圖像中有用的信息。所以blur的選取要進(jìn)行測(cè)試
如果要進(jìn)行濾波的圖像的長(zhǎng)寬比大致為1:1,那么選取blur時(shí),一般設(shè)置blur1=blur2
如果要進(jìn)行濾波的圖像的長(zhǎng)寬比大致為m:n,那么選取blur時(shí),blur1:blur2=m:n

大小

cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])–>dst
src = 原圖
dst = 目標(biāo)圖像。當(dāng)參數(shù)dsize不為0時(shí),dst的大小為size;否則,它的大小需要根據(jù)src的大小,參數(shù)fx和fy決定。dst的type和src圖像相同
dsize = 目標(biāo)圖像大小
fx = 水平軸上的比例因子
fy = 垂直軸上的比例因子
interpolation = 插值方法
1)INTER_NEAREST - 最近鄰插值法
2)INTER_LINEAR - 雙線性插值法(默認(rèn))
3)INTER_AREA - 基于局部像素的重采樣。對(duì)于圖像抽取來(lái)說(shuō),這可能是一個(gè)更好的方法。但如果是放大圖像時(shí),它和最近鄰法的效果類似。
4)INTER_CUBIC - 基于4x4像素鄰域的3次插值法
5)INTER_LANCZOS4 - 基于8x8像素鄰域的Lanczos插值
img.***
type(img) #類型
img.shape #尺寸
img.shape[0] #圖片寬度
img.shape[1] #圖片高度
img.shape[2] #圖片通道數(shù)
img.size #總像素個(gè)數(shù)
img.max() #最大像素值
img.min() #最小像素值
img.mean() #像素平均值

對(duì)圖像向上采樣:pyrUp函數(shù)(放大圖像)
對(duì)圖像向下采樣:pyrDown函數(shù)(縮小圖像)

cvtColor():用于實(shí)現(xiàn)圖像的色彩空間轉(zhuǎn)換

閾值化

cv2.threshold(src,thresh,maxval,type[,dst])
thresh:閾值
maxval:在二元閾值THRESH_BINARY和逆二元閾值THRESH_BINARY_INV中使用的最大值
type:使用的閾值類型

將原始的圖像通過(guò)制定閾值轉(zhuǎn)換為目標(biāo)的黑白圖像
該函數(shù)通常用于從灰度圖像中獲取二進(jìn)制圖像或用于消除噪聲,即濾除太小或太小的像素,很大的價(jià)值
函數(shù)支持幾種類型的閾值處理。 它們由類型參數(shù)確定。
此外,特殊值cv :: THRESH_OTSU或cv :: THRESH_TRIANGLE可以與上述值之一組合。
在這些情況下,函數(shù)使用Otsu或Triangle算法確定最佳閾值,并使用它而不是指定的閾值。 該函數(shù)返回計(jì)算的閾值。
目前,Otsu和Triangle方法僅適用于8位圖像

灰度,閾值化,HSV顏色模型,通道分離

'''灰度,閾值化,HSV顏色模型,通道分離''' import cv2 as cv import numpy as npfilename = r'G:\test\images\lena.jpg' filename_logo = r'G:\test\images\opencv-logo.png'img = cv.imread(filename)b, g, r = cv.split(img) #分離出圖片的B,R,G顏色通道 cv.imshow('blue', b) #顯示三通道的值都為R值時(shí)d圖片 cv.imshow('green', g) cv.imshow('red', r) cv.waitKey(8000)img_logo = cv.imread(filename_logo)gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) gray_logo = cv.cvtColor(img_logo, cv.COLOR_BGR2GRAY)cv.imshow("source image", img) cv.imshow("source image_logo", img_logo) cv.imshow("gray", gray) cv.imshow("gray_logo", gray_logo) cv.waitKey(4000) cv.destroyAllWindows()hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV) hsv_logo = cv.cvtColor(img_logo, cv.COLOR_BGR2HSV)cv.imshow("hsv_logo", hsv_logo) cv.imshow("Hue", hsv[:, :, 0]) cv.imshow("Saturation", hsv[:, :, 1]) cv.imshow("Value", hsv[:, :, 2]) cv.imshow("Hue_logo", hsv_logo[:, :, 0]) cv.imshow("Saturation_logo", hsv_logo[:, :, 1]) cv.imshow("Value_logo", hsv_logo[:, :, 2]) cv.waitKey(4000) cv.destroyAllWindows()cv.imshow("Blue", img[:, :, 0]) cv.imshow("Green", img[:, :, 1]) cv.imshow("Red", img[:, :, 2]) cv.imshow("Blue_logo", img_logo[:, :, 0]) cv.imshow("Green_logo", img_logo[:, :, 1]) cv.imshow("Red_logo", img_logo[:, :, 2])cv.waitKey(7000) cv.destroyAllWindows()
[:, :, 1]
分別是圖片的height,wide , channel(高,寬,通道數(shù))。
split()
當(dāng)調(diào)用 imshow(R)時(shí),是把圖像的R,G,B三個(gè)通道的值都變?yōu)镽的值,所以圖像的顏色三通道值為(R,R,R)
同理 imshow(G)和imshow(B)所顯示d圖像的顏色通道也依次為(G,G,G)和(B,B,B)。
而當(dāng)三個(gè)通道d值相同時(shí),則為灰度圖。

總結(jié)

以上是生活随笔為你收集整理的(CODE)计算机视觉引论及数字成像系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。