cv2.imread


cv2.imread
是 OpenCV 库中用于读取图像文件的函数。它的基本语法如下:

cv2.imread(filename, flags)

参数说明

  1. filename:
    • 类型: str
    • 描述: 要读取的图像文件的路径。可以是绝对路径或相对路径。
    • 示例: 'image.jpg', '/path/to/image.png'
  2. flags:
    • 类型: int
    • 描述: 指定读取图像的方式。常用的标志有以下几种:
      • cv2.IMREAD_COLOR1: 默认值,以彩色模式读取图像。图像会被转换为3通道的BGR格式(即蓝、绿、红三通道)。
      • cv2.IMREAD_GRAYSCALE0: 以灰度模式读取图像。图像会被转换为单通道的灰度图像。
      • cv2.IMREAD_UNCHANGED-1: 读取图像的所有通道,包括Alpha通道(如果有的话)。图像会保留其原始通道数。
    • 示例: cv2.IMREAD_GRAYSCALE, cv2.IMREAD_UNCHANGED

返回值

  • 类型: numpy.ndarray
  • 描述: 返回一个表示图像的NumPy数组。数组的形状取决于读取的图像模式和图像本身的尺寸。
    • 对于彩色图像,形状为 (height, width, 3),其中3表示BGR三个通道。
    • 对于灰度图像,形状为 (height, width)
    • 如果图像无法读取(例如文件不存在或格式不支持),则返回 None

示例代码

import cv2

# 以彩色模式读取图像
image_color = cv2.imread('image.jpg', cv2.IMREAD_COLOR)

# 以灰度模式读取图像
image_gray = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)

# 读取图像的所有通道(包括Alpha通道)
image_unchanged = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)

# 检查图像是否成功读取
if image_color is None:
   print("彩色图像读取失败")
if image_gray is None:
   print("灰度图像读取失败")
if image_unchanged is None:
   print("未更改图像读取失败")

# 显示图像
cv2.imshow('Color Image', image_color)
cv2.imshow('Gray Image', image_gray)
cv2.imshow('Unchanged Image', image_unchanged)

# 等待按键并关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

注意事项

  1. 文件路径: 确保提供的文件路径正确,否则 cv2.imread 会返回 None
  2. 图像格式: OpenCV 支持多种图像格式,如 JPEG、PNG、BMP 等。如果图像格式不受支持,cv2.imread 也会返回 None
  3. 内存管理: 读取的图像数据存储在NumPy数组中,使用完毕后应确保释放内存,尤其是在处理大量图像时。

通过合理使用 cv2.imread 的参数,可以根据需要读取不同格式和模式的图像数据,为后续的图像处理和分析打下基础。

Web前端-JavaScript中Reduce() 的例子

reduce 方法在数组的每个元素上执行用户提供的回调函数,即 reducer。它传入对前一个元素进行计算的返回值。结果是单个值。它是在数组的所有元素上运行 reducer 的结果。

它如何工作

reducer 函数逐个遍历数组元素。在每一步中,reducer 函数将当前数组值添加到上一步的结果中,直到没有更多元素要添加。

继续阅读“Web前端-JavaScript中Reduce() 的例子”

Apache 配置跨域资源访问

编辑httpd.conf

找下面这行,把#去掉,目的是开启apache头信息自定义模块

JavaScript
#LoadModule headers_module modules/mod_headers.so 

JavaScript
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials: true
Header set Access-Control-Allow-Headers: "Content-Type, X-Requested-With, Cache-Control,Authorization"
Header set Access-Control-Allow-Methods "GET, POST, PUT"

vue script setup 注意事项

  • setup 函数的执行时机是在 beforeCreate 和 created 之间;
  • 由于 setup 执行时机是在 created 之间,所以组件才刚刚被创建,而 data 和 methods 还没初始化好,所以无法在 setup 中使用 data 和 methods;
  • setup中 this 指向 undefined;
  • setup 只能是同步的,不能是异步的;

vue script setup 添加响应式属性

JavaScript
// 首先引入 vue 的 ref 方法
import { ref } from "vue";
const data = ref({a:999})

响应式的主要作用还是有些迷糊,理解的地方是,响应式代表,所有引用到这个数据的程式,都会在该数据发生变化时,作出相应的变化。

不理解的是, const d=def(0) 有必要吗?根据早前的开发经验,const data={a:9} ,运行时在 data 中添加了新的属性,这时无法触发变化,所以需要用到响应式。

CreateObject(“Wscript.Shell”)用法

WScript.Shell 是 WshShell 对象的 ProgID,创建 WshShell 对象可以运行程序、操作注册表、创建快捷方式、访问系统文件夹、管理环境变量。该对象有一个 Run 方法。Run 方法创建一个新的进程,该进程以 intWindowStyle 窗口样式执行 strCommand。

语法

WshShell.Run( strCommand, [intWindowStyle], [blnWaitOnReturn] )

参数说明

strCommand

在 strCommand 参数内部的环境变量被自动扩展。

intWindowStyle

这是为新进程在 STARTUPINFO 结构内设置的 wShowWindow 元素的值。其意义与 ShowWindow 中的 nCmdShow 参数相同,可取以下值之一。

名称 值 含义

名称说明
SW_HIDE0隐藏窗口并激活另一窗口。
SW_MINIMIZE6最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。
SW_RESTORE9激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
SW_SHOW5以当前大小和位置激活并显示窗口。
SW_SHOWMAXIMIZED3激活窗口并以最大化显示该窗口。
SW_SHOWMINIMIZED2激活窗口并以最小化显示该窗口。
SW_SHOWMINNOACTIVE7最小化显示窗口。活动窗口保持活动。
SW_SHOWNA8以当前状态显示窗口。活动窗口保持活动。
SW_SHOWNOACTIVATE 44按窗口最近的大小和位置显示。活动窗口保持活动。
SW_SHOWNORMAL1激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。

blnWaitOnReturn

如果未指定 blnWaitOnReturn 或其值为 FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。若 blnWaitOnReturn 设为 TRUE,则 Run 方法返回由应用程序返回的任何错误代码。如果未指定 blnWaitOnReturn 或其值为 FALSE,则 Run 返回错误代码 0(zero)。

VB
Set WshShell= Wscript.CreateObject("Wscript.Shell")
WshShell.Run "notepad.exe"

保存为notepad.vbs文件,双击会打开notepad。

拖拽多个文件到 BAT 文件的处理方法,获得全部文件名

D
@echo off 
:TOP 

@REM 本来以为 %1 中的1代表 第一个参数,要改变它才能获得其它
@REM 应该是 shift 对指针进行了位移,所以逐个读取了参数
IF (%1) ==() GOTO END 
@REM 下面逐个输出了文件名,可以编写需要的功能,如 >python main.py %1
echo "%1"

@REM 下面这个 SHIFT 研究了一下,应该是位移指针用的
SHIFT
GOTO TOP 
:END 

PAUSE