八、Opencv牛刀小试-python实现(批量访问图像、改变图像大小、鼠标点击图像打印像素值)

一: 批量访问图像

"""
时间:2019.7.18 12:40:43
作者:小宇
"""
import os.path
import glob
import cv2
def maxinandout():
   '''批量访问-处理-文件并按原文件名存储在指定的文件夹中'''
    outdir=r"D:\\images\\asd" #要存放的文件路径
    for jpgfile in glob.iglob(r'D:\\images\\as\\*.jpg'):#读取的文件路径(遍历所有后缀为.jpg的所有文件)
        img=cv2.imread(jpgfile, cv2.IMREAD_ANYCOLOR)
        dst=img[1008:3024,:]
        cv2.imwrite(os.path.join(outdir,os.path.basename(jpgfile)), dst)#存储文件

二:改变图像大小

"""
时间:2019.7.19 12:40:43
作者:小宇
"""
import cv2
import numpy as np
img = cv2.imread('D:\\images\\asd\\d03.jpg')
def resize_photo(img):
    """改变输入图像的大小,此函数可以将图像改变为宽,高都小于600的图像    """
    h,w= img.shape[:2]     #获取输入图像的高和宽
    print(h,w)
    n=1
    for n in range(1,10):
        a=int(1/n*w)
        b=int(1/n*h)
        if a<=600 and b<=600:
            break
        else:
            continue
    img=cv2.resize(img,(a,b),interpolation=cv2.INTER_CUBIC)
    cv2.imshow('dd',img)
    cv2.waitKey(0)
    print('处理后:',img.shape)
    return img
resize_photo(img)

三:鼠标点击图像打印像素值

"""
时间:2019.7.20 12:40:43
作者:小宇
"""
'''单机鼠标左键,可打印出对应图像上的坐标、rgb值、hsv分量的值'''
import cv2
img = cv2.imread('D:\\images\\asd\\d31.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
def mouse_click(event, x, y, flags, para):
    if event == cv2.EVENT_LBUTTONDOWN:  # 左边鼠标点击
        print('PIX:', x, y)
        #print("BGR:", img[y, x])
       # print("GRAY:", gray[y, x])
        #print("HSV:", hsv[y, x])   
if __name__ == '__main__':
    cv2.namedWindow("img",cv2.WINDOW_NORMAL)
    cv2.resizeWindow('img',1600,800)
    cv2.setMouseCallback("img", mouse_click)
while True:
    cv2.imshow('img', img)
    if cv2.waitKey() == ord('q'):
        break
cv2.destroyAllWindows() 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小树苗m

您的打赏,是我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值