物候相机开发

物候相机开发


物候相机

查找CGI网址:百度开发教材
相机CGI事例:CGI以及其他文档接口

1、获取图片接口:http://admin:tynoo@123@192.168.1.64/streaming/channels/1/picture
获取图片
2、切换日夜模式,也就是切换IR-cut:使用 PUT 形式:http://admin:tynoo@123@192.168.1.64/ISAPI/Image/channels/1/ircutFilter
提交的是form-data,使用raw方式进行提交<IrcutFilterType>day</IrcutFilterType>day代表ir-cut拍摄出来的是RGB照片,night代表拍出来是带红外的照片,所以要切换的话,就需要二次请求:

<?xml version: "1.0" encoding="UTF-8"?><IrcutFilter><IrcutFilterType>day</IrcutFilterType><nightToDayFilterLevel>2</nightToDayFilterLevel></IrcutFilter>

postman上请求如下:
在这里可以听到相机咔哒一声进行切换
3、需要得到曝光值:http://admin:tynoo@123@192.168.1.64/image/channels/1/exposure

明天进行测试工作

以上的开发文档适合旧版的海康威视的设备。目前已经更新最新ISAPI接口文档。

最新

最新开发加入了 原文链接digest

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# author:Administrator
# datetime:2019/9/4 9:32
# software: PyCharm
# Email:zhou.haitao@technosolutions.cn
from requests.auth import HTTPDigestAuth

__auther__ = "Kael"

import os
import requests
import time
import datetime

from ftpUpload import FileUpload

IPCamera_IP = "192.168.1.64"
IPCamera_USERNAME = "admin"
IPCamera_PWD = "tynoo123"
IPCamera_NAME = "tynoo007_100"

FTP_IP = "ftp IP address"
FTP_PORT = 21
FTP_USERNAME = "yourusername"
FTP_PASSWORD = "yourpasswd"

IPCamera_URL = "http://" + IPCamera_IP


IPCamera_IMAGE_URL = IPCamera_URL + "/ISAPI/Streaming/channels/101/picture"
IPCamera_IR_CUT_URL = IPCamera_URL + "/ISAPI/Image/channels/1/ircutFilter"

IPCamera_IR_CUT_DAY_MODEL = '''<?xml version: "1.0" encoding="UTF-8"?><IrcutFilter><IrcutFilterType>day</IrcutFilterType><nightToDayFilterLevel>2</nightToDayFilterLevel></IrcutFilter>      '''
IPCamera_IR_CUT_NIGHT_MODEL = '''<?xml version: "1.0" encoding="UTF-8"?><IrcutFilter><IrcutFilterType>night</IrcutFilterType><nightToDayFilterLevel>2</nightToDayFilterLevel></IrcutFilter>      '''


def request_download(url, file_name):
    r = requests.get(url, auth=HTTPDigestAuth(IPCamera_USERNAME, IPCamera_PWD)) #使用digest 进行认证
    with open(file_name, 'wb') as f:
        f.write(r.content)


def chunk_download(url, file_name):
    r = requests.get(url, stream=True)
    with open(file_name, 'wb') as f:
        for chunk in r.iter_content(chunk_size=32):
            f.write(chunk)


def change_ipcamera_model(url, model):
    if requests.put(url, data=model,auth=HTTPDigestAuth(IPCamera_USERNAME, IPCamera_PWD)):
        return True
    else:
        return False


if __name__ == '__main__':

    '''
    yanfair_3_2019_09_04_153006.jpg

    '''
    print("Begin of Process By Kael")
    # make a dirs to strone the images and metadata
    while True:
        try:
            os.makedirs('./image/', exist_ok=True)

            dt_str = datetime.datetime.now().strftime("%Y_%m_%d_%H%M%S")

            image_para = {}
            image_para["image_RGB_name"] = os.path.join('./image', IPCamera_NAME + "_" + dt_str + ".jpg")
            image_para["image_RGB_meta"] = os.path.join('./image', IPCamera_NAME + "_" + dt_str + ".meta")
            image_para["image_IR_name"] = os.path.join('./image', IPCamera_NAME + "_IR" + "_" + dt_str + ".jpg")
            image_para["image_IR_meta"] = os.path.join('./image', IPCamera_NAME + "_IR" + "_" + dt_str + ".meta")

            # 1 makesure the ipcamera model is RGB and 5 seconds
            change_ipcamera_model(IPCamera_IR_CUT_URL, model=IPCamera_IR_CUT_DAY_MODEL)

            time.sleep(10)

            # 2 download the RGB picture
            print("Begin download {} picture".format(image_para["image_RGB_name"]))
            request_download(IPCamera_IMAGE_URL, image_para["image_RGB_name"])

            # 3 write the IPCamera exposure to the RGB meta  file
            with open(image_para["image_RGB_meta"], "w")as fobj:
                fobj.write("exposure=100\r")

            # 4 change the IPCamera model from RGB to IR
            change_ipcamera_model(IPCamera_IR_CUT_URL, model=IPCamera_IR_CUT_NIGHT_MODEL)

            time.sleep(10)

            # 5 download the IR picture
            print("Begin download {} picture".format(image_para["image_IR_name"]))
            request_download(IPCamera_IMAGE_URL, image_para["image_IR_name"])

            # 6 write the IPCamera exposure to the IR meta  file
            with open(image_para["image_IR_meta"], "w")as fobj:
                fobj.write("exposure=100\r")

            # 1 makesure the ipcamera model is RGB and 5 seconds
            change_ipcamera_model(IPCamera_IR_CUT_URL, model=IPCamera_IR_CUT_DAY_MODEL)

            print("End of Process By Kael")

            file_list = os.listdir('./image')

            for i in file_list:
                local_file_path = os.path.join('./image', i)
                remote_file_path = os.path.join('/data/' + IPCamera_NAME + '/', i)
                FileUpload(FTP_IP, FTP_PORT, FTP_USERNAME, FTP_PASSWORD, local_file_path, remote_file_path).ftp_upload()
                os.remove(local_file_path)
        except Exception as e:
            print(e)
        finally:
            time.sleep(600)



  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提取物候(matlab) 是指使用MATLAB软件进行物候数据处理和分析的方法。 物候是指植物或动物在不同季节中的生长、发育和生理状态的变化。通过提取物候数据,可以了解植物或动物在不同环境条件下的生物学行为和适应能力。 MATLAB是一种功能强大的科学计算软件,广泛用于数据处理和分析。使用MATLAB提取物候数据可以采用以下步骤: 1. 数据导入:将物候数据以文本文件或Excel文件的形式导入到MATLAB中。可以使用MATLAB的文件读取函数和数据导入工具进行操作。 2. 数据清洗:根据需要筛选和清洗数据。例如,可以去除异常值或缺失值,对数据进行平滑处理或插补。 3. 数据预处理:对物候数据进行预处理,以便后续分析。例如,可以进行数据标准化、归一化或对数化等操作,以确保数据处于可比较的状态。 4. 数据分析:使用MATLAB提供的各种功能和工具对物候数据进行分析。例如,可以进行统计分析、时序分析、频域分析等。 5. 结果可视化:利用MATLAB的绘图函数和工具将分析结果可视化。可以生成折线图、柱状图、散点图等,以便更直观地展示物候数据的变化趋势和规律。 综上所述,提取物候数据可以通过使用MATLAB软件进行数据导入、清洗、预处理、分析和可视化。这个过程可以帮助我们深入了解植物或动物在不同时间和环境条件下的生长和发育状况,为生态学、农业学和环境科学等领域的研究提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值