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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数字图像处理之图像基础

發布時間:2023/12/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数字图像处理之图像基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學數字圖像處理,圖像基礎包括以下部分:

導入庫

import numpy as np import matplotlib.pyplot as plt import cv2 as cv

圖片展示函數

def show(img):if img.ndim == 2:plt.imshow(img,cmap='gray')else:plt.imshow(cv.cvtColor(img,cv.COLOR_RGB2BGR))plt.show()

圖像的矩陣表示

A = np.random.randint(0,256,(2,4),dtype=np.uint8) print(A) show(A) B = np.random.randint(0,256,(2,4,3),dtype=np.uint8) print(B) show(B)

結果如下圖所示:

通道合并與分離

img = cv.imread('C:\PerfLogs\pc.jpg') b,g,r = cv.split(img)#分離 show(b) show(g) show(r) img_new = cv.merge([b,g,r])#合并通道

分離后的三通道顯示出來的圖像

合并后的圖片為:

彩色圖轉灰度圖

gray1 = 0.299*b + 0.587*g + 0.114*r #opencv自己提供的函數實現彩色圖轉灰度圖 img_gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) show(np.hstack([gray1,img_gray])

圖像的二值化

thresh = 125 gray2[gray2>thresh] = 255 gray2[gray2<=thresh] = 0 #opencv自帶的函數 ignore,img_bin = cv.threshold(gray2,125,200,cv.THRESH_BINARY)

兩圖像的加減乘除

#圖片的加載+調整圖片大小 obj = cv.imread('C:\PerfLogs\pc.jpg',0) obj = cv.resize(obj,(550,550),)#調整圖片大小 bg = cv.imread('C:\PerfLogs\pc1.jpg',0) bg = cv.resize(bg,(550,550),) mask = cv.imread('C:\PerfLogs\pc2.jpg',0) mask = cv.resize(mask,(550,550),) noise = cv.imread('C:\PerfLogs\pc3.jpg',0) noise = cv.resize(noise,(550,550),)

圖像根據一定比例相加

img_add1 = cv.add(noise*0.5,bg*0.5) img_add2 = cv.addWeighted(noise,0.5,bg,0.5,0)#opencv自帶的函數 show(np.hstack([img_add1,img_add2]))


兩圖像相減

img_sub = img_add2 - noise*0.5 show(np.hstack([bg,img_sub*2]))


兩圖像相乘

mask = mask/255.#歸一化 img_mul = obj*mask img_mul2 = cv.multiply(obj*1.0,mask) show(np.hstack([img_mul,img_mul2]))


兩圖像相除

img_div = obj/(np.float64(noise)+1) img_div2 = cv.divide(obj,noise+1) show(np.hstack([img_div,img_div2]))

(不知道弄了啥)

圖像的線性和非線性變換


圖像的線性變換

#線性變換 img = cv.imread('C:\PerfLogs\pc.jpg',0) b = 20 k=2 img2 = b+k*img.astype(np.int32) show(np.hstack([img,img2]))


圖像的非線性變換

img01 = img/255 img05 = np.power(img01,0.5) * 255 img15 = np.power(img01,1.5) * 255 show(np.hstack([img05 , img , img15]))


由三張圖片對比可得,冪次越小,圖片越亮,冪次越大,圖片越暗。符合如下的圖像。

總結

以上是生活随笔為你收集整理的数字图像处理之图像基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。