有没有什么方法可以在树莓派中设置相机拍摄黑白图像?,比如在 picamera 库中使用一些命令/代码?
由于我需要比较几张不同图像的相对光强度,我担心当物体处于不同光照时,相机会自己进行一些调整,所以即使我稍后将图像转换为黑白图像对象的“真实”黑白图像将丢失。
谢谢
编辑:基本上我需要做的是在相机位置固定时捕获物体的一些图像,但是光源的位置发生了变化(因此照明方向也发生了变化)。然后对于图像上的每个点,我需要比较不同图像的相对光强度。只要所有图像的光强度或“亮度”相对于相同的比例,就可以,但我不确定是否是这种情况。我确定当图像“固有地”更暗或更亮时,相机是否会自动调整诸如对比度之类的东西。
我正在学习c++,我想在c++中实现以下python代码:
C = np.where(A>B)[0]
while len(C)>0:
d = C[0]
# do something to A[d] and B[d]
C = A>B
Run Code Online (Sandbox Code Playgroud)
A和B都是相同长度的向量。在 C++ 中,我知道如何声明、初始化A和B使用vector,并为 A 和 B 实现中间的“做某事部分”,但我不知道如何比较它们并检查是否A有大于 的元素B,并找到索引发生这种情况的元素。
我有一个2D数组A形状(4,3)和一维a形状的数组(4,).我想交换前两行A,以及前两行中的元素a.我做了以下事情:
A[0,:],A[1,:] = A[1,:],A[0,:]
a[0],a[1] = a[1],a[0]
Run Code Online (Sandbox Code Playgroud)
显然,它适用于a,但失败了A.现在,第二行成为第一行,但第一行保持不变.如果我执行以下操作:
first_row_copy = A[0,:].copy()
A[0,:] = A[1,:]
A[1,:] = first_row_copy
Run Code Online (Sandbox Code Playgroud)
然后,它似乎工作.为什么第一种方法不起作用?(但适用于a)另外,A_copy = A[0,:].copy()和之间的区别是A_copy = A[0,:]什么?
我有一个dict看起来像
A = {
'test1':{'q0':[0.123,0.234],'phi0':[0.124,0.4325],'m':[9.42,0.3413]},
'test2':{'q0':[0.343,0.353],'phi0':[0.2341,0.235]},
'test3':{'q0':[0.343,0.353],'phi0':[0.2341,0.235],'m':[0.325,0.325],'z0':[0.234,0.314]}
}
Run Code Online (Sandbox Code Playgroud)
我想打印每个字典:
'test1': q0=0.123(0.234) phi0=0.123(0.4325) m=9.42(0.3413)
'test2': q0=0.343(0.353) phi0=0.2341(0.235)
'test3': z0=0.234(0.314) q0=0.343(0.353) phi0=0.2341(0.235) m=0.325(0.325)
Run Code Online (Sandbox Code Playgroud)
如何在Python 3中使用string.format()?由于每个子字典都有可变数量的'参数',我不知道如何使用一些列表/字典理解来完成它.另外,如果我想留下一些空间,如果该参数缺失如图所示,我该怎么做?每个字典最多有五个不同的参数(q0,phi0,m,c,z0).我把它打印到终端,所以我不需要非常花哨的东西,但我希望它更可读.
我在Python中有以下代码:
class DisjointSet:
def __init__(self, n):
self.parent = list(range(n))
self.rank = [0 for x in range(n)]
def find(self, v):
if v != self.parent[v]:
self.parent[v] = self.find(self.parent[v])
return self.parent[v]
Run Code Online (Sandbox Code Playgroud)
其余代码在"代码复杂性"方面类似,此处不包括在内.
所以我想将上面的代码翻译成cython代码(我知道一点C++,我设法将我的所有代码翻译成C++,但我想尝试cython,看看它与c ++和python的比较).我有类似的东西:
disjointset.pyx:
# distutils: language=c++
from libcpp.vector cimport vector
cdef class DisjointSet:
cpdef public vector[int] parent, rank
def __init__(self, int n):
for i in range(n):
self.parent.push_back(i)
self.rank.push_back(0)
def find(self, int v):
if v != self.parent[v]:
self.parent[v] = self.find(self.parent[v])
return self.parent[v]
Run Code Online (Sandbox Code Playgroud)
setup.py:
from distutils.core import setup
from Cython.Build import cythonize
setup( …Run Code Online (Sandbox Code Playgroud) python ×5
arrays ×1
c++ ×1
camera ×1
cython ×1
cythonize ×1
dictionary ×1
format ×1
numpy ×1
pointers ×1
python-3.x ×1
raspberry-pi ×1
stdvector ×1
string ×1
vector ×1