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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CV之路——opencv基本操作

發(fā)布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CV之路——opencv基本操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目的

  • 分享學(xué)習(xí)心得,從實操中學(xué)習(xí)圖像的前處理。代碼直接跑,什么都不用改,如果網(wǎng)址失效,直接換網(wǎng)址即可。

- imageio==2.6.0 用來讀取網(wǎng)址圖片 - cv2==3.2.14 圖像操作 - numpy==1.19.0
  • 獲取圖片
import imageio # 可以從網(wǎng)址中讀取圖片的庫 --> pip install imageio import cv2 file_path = "http://img.mp.itc.cn/upload/20170206/3cbd5b8834df4b409d289d9d8d50530a_th.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) # 讀取的是RGB通道,轉(zhuǎn)成opencv的BGR通過 cv2.imwrite("cat.jpg",img ) cv2.imshow("cat", img) cv2.waitKey(0) cv2.destroyAllWindows()

  • 圖片分通道
# 圖片分通道 -->B,G,R import imageio import cv2 file_path = "http://img.mp.itc.cn/upload/20170206/3cbd5b8834df4b409d289d9d8d50530a_th.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) # 讀取的是RGB通道,轉(zhuǎn)成opencv的BGR通道 img = cv2.resize(img,(360,640)) # 更改大小,便于顯示 b,g,r = cv2.split(img) # 圖片分通道 # img_1 = cv2.merge((b, g, r)) # 分割后的通道合并 bgr = np.hstack((b,g,r)) # 圖片矩陣并排顯示 cv2.imwrite("split.jpg",bgr ) cv2.imshow("split",bgr) cv2.waitKey(0) cv2.destroyAllWindows()

  • 形態(tài)學(xué)——腐蝕膨脹
import imageio import cv2 file_path = "http://1824.img.pp.sohu.com.cn/images/blog/2009/7/21/21/16/1234ab28e28g214.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) kernel = (7,7) # 腐蝕或膨脹的程度 erode = cv2.erode(img, kernel, iterations=20) # 腐蝕操作 dilate = cv2.dilate(img, kernel, iterations=20) # 膨脹操作 result = np.hstack((img,erode,dilate)) # 原圖 - 腐蝕 - 膨脹 cv2.imwrite("erode_dilate.jpg",result) cv2.imshow("result",result) cv2.waitKey(0) cv2.destroyAllWindows()

  • 形態(tài)學(xué)——開運算,閉運算
import numpy as np import imageio import cv2 file_path = "https://img.pconline.com.cn/images/photoblog/9/7/3/6/9736422/20099/21/1253523872358_mthumb.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) img = cv2.resize(img,(360,360)) kernel = (7,7) # 腐蝕或膨脹的程度 opens = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel, iterations=20) # 開運算 -->先腐蝕再膨脹 close = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations=20) # 閉運算 -->先膨脹再腐蝕 result = np.hstack((img,opens,close)) # 原圖 - 開運算 - 閉運算 cv2.imwrite("open_close.jpg",result) cv2.imshow("result",result) cv2.waitKey(0) cv2.destroyAllWindows()

  • 邊緣檢測——sobel
import numpy as np import imageio import cv2 file_path = "http://img.mp.itc.cn/upload/20170206/3cbd5b8834df4b409d289d9d8d50530a_th.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) img = cv2.resize(img,(360,640)) sobelx = cv2.Sobel(img, ddepth=cv2.CV_32F, dx=1, dy=0, ksize=3) # 延x方向檢測 sobely = cv2.Sobel(img, ddepth=cv2.CV_32F, dx=0, dy=1, ksize=3) # 延y方向檢測 # sobelxy = cv2.Sobel(img, ddepth=cv2.CV_32F, dx=1, dy=1, ksize=3) # 也可以直接x-y一起sobel,但一般效果沒有分開處理的好 convx = cv2.convertScaleAbs(sobelx) # convy = cv2.convertScaleAbs(sobely) sobel = cv2.addWeighted(convx, 0.5, convy, 0.5, 0) res = np.hstack((img, convx, convy, sobel)) # 原圖 - sobelx - sobely - sobel cv2.imwrite("sobel.jpg",res) cv2.imshow('res', res) cv2.waitKey(0) cv2.destroyAllWindows()

  • 邊緣檢測——canny
import numpy as np import imageio import cv2 file_path = "http://img.mp.itc.cn/upload/20170206/3cbd5b8834df4b409d289d9d8d50530a_th.jpg" img = imageio.imread(file_path) img = cv2.cvtColor(img,cv2.COLOR_RGB2BGR) img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img = cv2.resize(img,(360,640)) print(img.shape) # thresh1和thresh2可以根據(jù)實際圖片情況更改 thresh1 = 0 thresh2 = 125 canny = cv2.Canny(img, thresh1, thresh2) print(canny.shape) result = np.hstack((img,canny)) cv2.imwrite("canny.jpg",result) cv2.imshow('res', result) cv2.waitKey(0) cv2.destroyAllWindows()

  • 圖像金字塔
# 上采樣 import numpy as np import imageio import cv2 file_path = "http://img.mp.itc.cn/upload/20170206/3cbd5b8834df4b409d289d9d8d50530a_th.jpg" original = imageio.imread(file_path) img = cv2.cvtColor(original,cv2.COLOR_RGB2BGR) # 下采樣 down1 = cv2.pyrDown(img,(int(img.shape[0]/2),int(img.shape[1]/2))) down2 = cv2.pyrDown(down1,(int(img.shape[0]/4),int(img.shape[1]/4))) # # 上采樣 # up1 = cv2.pyrUp(img,(int(img.shape[0]/2),int(img.shape[1]/2))) # up2 = cv2.pyrUp(up1 ,(int(img.shape[0]/4),int(img.shape[1]/4))) cv2.imwrite("original.jpg",img) cv2.imwrite("down1.jpg",down1) cv2.imwrite("down2.jpg",down2) cv2.imshow('original',img) cv2.imshow('down1',down1) cv2.imshow('down2',down2) cv2.waitKey(0) cv2.destroyAllWindows()

  • 總結(jié)
    • 每天進步一點點
  • 參考文獻
    https://max.book118.com/html/2018/0523/168182943.shtm
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的CV之路——opencv基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美一区二区在线 | 亚洲一区在线观 | 婷婷丁香六月天 | 红桃视频一区二区三区免费 | 美女激情av | 午夜8888 | 美女天天操 | 国产日韩片 | 国产微拍精品一区 | 人妻丰满熟妇av无码久久洗澡 | 美女啪啪网 | 伊人激情综合网 | 国产精品第六页 | 成人片黄网站久久久免费 | 亚洲激情视频在线播放 | 毛片基地免费观看 | 久久综合色婷婷 | 桃谷绘里香在线观看 | 在线精品一区 | 欧美日韩亚洲另类 | 亚洲无码精品在线观看 | 亚洲乱码在线 | 狠狠看 | 手机看片日韩欧美 | 日韩一区二区免费播放 | 久久综合伊人77777麻豆最新章节 | 久久在草 | 蜜桃久久久 | 日韩成人在线视频 | 国产成人精品免高潮在线观看 | 久久精品视频一区二区 | 成年免费视频黄网站在线观看 | 大乳护士喂奶hd | 最新免费av网站 | 伊人中文字幕 | 村姑电影在线播放免费观看 | 综合激情在线 | 亚洲综合少妇 | 日韩国产欧美一区二区 | 日本少妇高潮 | 亚洲天堂第一页 | 国产真实伦对白全集 | 999这里只有精品 | 成人黄页 | 亚洲欧美视频在线 | 99热在线观看免费精品 | 五月激情婷婷丁香 | 日韩欧美影院 | 亚洲黄色在线播放 | 91超碰免费| 久久99精品久久久水蜜桃 | 4438全国最大成人网 | 污视频在线观看免费 | 国模无码视频一区 | 国产免费福利 | 久久综合亚洲 | 免费看毛片的网站 | 国产亚洲片 | 欧美激情久久久久久久 | 欧美变态网站 | 靠逼网站在线观看 | 日韩亚洲欧美一区二区 | 精品人妻一区二区三区三区四区 | 日本欧美一区二区三区不卡视频 | 中文字幕日韩一区二区三区 | 成人综合区 | 91高清在线免费观看 | 成人乱人乱一区二区三区 | 善良的女邻居在线观看 | 最新成人 | 久久综合久久鬼色 | 超碰在线最新地址 | 久久精品视频91 | 亚洲字幕成人中文在线观看 | 丰满少妇一级 | 6699av| 亚洲免费网址 | 秋霞一级全黄大片 | 鸥美毛片 | 午夜视频入口 | 成人无码一区二区三区 | av在线黄色 | 国产肥熟 | 91成年影院 | 91av视频网| 在线观看亚洲大片短视频 | 欧美精品久久久久久久 | 涩涩成人| 国产精品免费一区二区三区在线观看 | 婷婷亚洲综合五月天小说 | 久久久久影视 | 欧美激情xxxxx | 人人干人人搞 | 亚洲www色 | 国产啊v在线观看 | 欧美一区成人 | 国产免费一区二区三区在线观看 | 欧美精品免费视频 | 亚洲综合自拍偷拍 |