opencv 实践入门1 - 安装,准备和测试

我只是一名搬砖工,无意侵犯各位大佬知识产权。
最近因项目组需要,开始学图像处理
所以记录一下这个过程以及经验,希望能帮到大家

学习参考资料:

1.《图像处理的数学修养》

  1. github 上的OpenCV-Python-Tutorial

若想系统地学习,麻烦移步到 github或买书啃一下


安装 Python openCV

  1. anaconda cloud 搜索 opencv
  2. 选择合适的版本,我选的是第四个(anaconda/opencv, 其他版本我也不懂,要请教其他大佬)
  3. 点击去,根据上面的命令安装,比如:这个是 conda install -c anaconda opencv (蓝色框)
  • 将这一句命令直接复制到你的 termnial (mac端) 或 cmder (win端, win+R, 输入 'cmd',出现小黑框),直接按回车,anaconda 会检查需要安装的附加包,选择 y,一并下载和安装。
  • 红色框是 opencv 的官方说明(英文),有能力的朋友可以看看,这会学习很有帮助

如果不知道什么是 anaconda,或者还没有安装 Python 的朋友,建议可以看看我写的另一篇文章

测试是否安装成功

  1. 准备一张图片,打开 spyder
import cv2

png = '/Users/brain.png'   ##图片放置的路径,最好放绝对路径,肯定不会出错。(我是 mac 玩家,win 玩家自行修改)
img = cv2.imread(png,0)  # imread 读入(加载)图片,参数1,图片文件路径,参数2,读入图片格式,*1*:彩色(默认),*0*:灰度图,*-1*:包含透明通道的彩色图

cv2.imshow('brain',img)  ## 显示图片,参数1,窗口名字(随便命名),参数2,要显示的图片

直接使用 imshow,不能调节显示窗口大小.png

可以先预设一个窗口 namedWindow,在这个窗口中打开图片,这样设置的窗口可以在打开后调整大小,适用于图片较大的情况

import cv2

png = '/Users/brain.png'
img = cv2.imread(png,0)

# 先定义窗口,后显示图片
cv2.namedWindow('brain2', cv2.WINDOW_NORMAL) ##参数1是窗口名字,参数2 可选(cv2.WINDOW_AUTOSIZE:窗口大小自适应图片, cv2.WINDOW_NORMAL:窗口大小可调整)
cv2.imshow('brain2', img)
cv2.waitKey(0)
### waitKey 是让程序暂停,数字是暂停的时间,0代表一直等待

# 等待期间可以获取用户按键输入,如

k = cv2.waitKey(0)
if k == 's':
    cv2.imshow('brain2', img)
    cv2.destroyAllWindows()  ### 关闭所有打开的窗口
使用namedWindow里面的cv2.WINDOW_NORMAL可以设置窗口大小.png

保存照片 cv2.imwrite()

import cv2

png = '/Users/brain.png'
picture = cv2.imread(png,0)

cv2.imwrite('brain_gray.jpg',picture)

处理前后对比.png

小结 (基础测试操作)

  • cv2.imread() 读入图片

    1. 如果缺少文件,权限不当,格式不受支持或无效,当print(图片)时,将返回None.
    2. 该函数通过内容而不是文件扩展名来决定图像类型.
    3. 图像数据将以B,G,R的顺序存储. (mat接口)
  • cv2.imshow() 显示图片

    1. 打开图片后退出关闭不了,卡住了
      解决办法:(在我 macbook 上成功了,供大家参考)
    2. 用 cv2.destroyAllWindows(),并在其后面加 cv2.waitKey(1)
    cv2.destroyAllWindows()
    cv2.waitKey(1)
    
    其他地方爬到的解释,我没没怎么看懂,但是确实有用.png
  • cv2.imwrite() 保存图片

    1. cv2.imwrite(filename, img,[, params]) ## filename 保持路径,img保存的图像名,
    2. params (对于JPEG,其表示的是图像的质量,用0 - 100的整数表示,默认95;对于png ,第 三个参数表示的是压缩级别。默认为3)
    3. 完整代码:
    cv2.imwrite('/Users/output/brain.png', img,[int(cv2.IMWRITE_JPEG_QUALITY), 90])
    
  • cv2.waitKey(0) 让程序等待

    • 括号里面的数字代表时间,单位 ms。0表示一直等待
    • 在等待的过程中,可以接受用户输入,如:
      需要注意的是,这里的输入不在 console,而是要点击图片窗口
    input = cv2.waitKey(0)
    

应用: (原地址)
  1. 加载一幅灰度图像,显示它,如果按's'则保存图像并退出,如果按ESC键直接退出
import cv2

img = cv2.imread('/Users/brain.png',0)
cv2.imshow('brain',img)
k = cv2.waitKey(0)& 0xFF
if k == 27:         # wait for ESC key to exit
    cv2.destroyAllWindows()
    cv2.waitKey(1)
elif k == ord('s'): # wait for 's' key to save and exit
    cv2.imwrite('brain_gray.png',img)
    cv2.destroyAllWindows()
    cv2.waitKey(1)
  1. 和Python 的Matplotlib结合使用.
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('/Users/brain.png',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([])  # to hide tick values on X and Y axis
plt.show()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269