我在Ubuntu 12.04上使用Python(2.7)和OpenCV 2.4.6的绑定
我加载图像
image = cv2.imread('image.jpg')
Run Code Online (Sandbox Code Playgroud)
然后我检查图像阵列的形状
print image.shape
Run Code Online (Sandbox Code Playgroud)
我得到(480,640,3),我期望640x480彩色图像.然后我将图像转换为灰度并再次检查形状.
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
print gray_image.shape
Run Code Online (Sandbox Code Playgroud)
我得到(480,640,1),我期望640x480 灰度图像.然后我保存图像:
cv2.imwrite('gray.jpg', gray_image)
Run Code Online (Sandbox Code Playgroud)
我在linux上,所以我试着用gThumb查看图像,它显示了所有的颜色通道.当我将灰色图像带回OpenCV时,图像再次有三个通道.我知道这个标志用于阅读图像:
CV_LOAD_IMAGE_GRAYSCALE - If set, always convert image to the grayscale one
Run Code Online (Sandbox Code Playgroud)
但这听起来像是将图像作为彩色图像引入然后转换它.我正在将这个项目移植到RaspberryPi,所以我不希望发生不必要的操作.
编辑:我做了一些计时检查,我发现使用CV_LOAD_IMAGE_GRAYSCALE标志设置加载图像会导致图像加载速度提高两倍,而不管图像输入如何.
Using a 3072 x 4608 x 3 image
0.196774959564 seconds with default loading
0.0931899547577 seconds with CV_LOAD_IMAGE_GRAYSCALE
Run Code Online (Sandbox Code Playgroud)
问题似乎是OpenCV正在创建3通道JPG输出,无论我是否有灰度图像矩阵!
我可以用什么其他应用程序来确保我得到一个8位通道JPG图像?(也许gThumb错误地报告了频道).
如果图像不是单通道,为什么OpenCV会在磁盘写入时将我的灰度图像保存为3通道图像?
提前致谢.
我见过:
这些与香草蟒蛇有关,而不是熊猫.
如果我有这个系列:
ix num
0 1
1 6
2 4
3 5
4 2
Run Code Online (Sandbox Code Playgroud)
我输入3,我怎样才能(有效地)找到?
IE浏览器.使用上面的系列{1,6,4,5,2}和输入3,我应该得到带有索引(2,4)的值(4,2).
将OpenCV中的图像从彩色转换为灰度时,使用什么转换算法?我试着在GitHub的源代码中查看这个,但我没有任何成功.
亮度方法平均最突出和最不突出的颜色:
(max(R, G, B) + min(R, G, B)) / 2.
Run Code Online (Sandbox Code Playgroud)
平均方法只是平均值:
(R + G + B) / 3.
Run Code Online (Sandbox Code Playgroud)
发光度方法是普通方法的更复杂版本.它还对这些值进行平均,但它形成了一个加权平均值来说明人类的感知.我们对绿色比其他颜色更敏感,所以绿色最重要.
The formula for luminosity is 0.21 R + 0.72 G + 0.07 B.
Run Code Online (Sandbox Code Playgroud)
以下是一些转换算法的示例:http: //www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
在 RSpec 中使用 I18n 翻译测试 Ruby 代码时,我收到如下错误:
translation missing: en.lib.filter.equal_to
Run Code Online (Sandbox Code Playgroud)
这是一个简化的示例:
def word_for_operator
I18n.t('lib.filter.equal_to')
end
Run Code Online (Sandbox Code Playgroud)
规格:
it "returns the correct label" do
expect(filter.word_for_operator).to eq("some value")
end
Run Code Online (Sandbox Code Playgroud)
Rails 中一切工作正常。
如何在我的规格中使用 I18n?
我似乎找不到有关是否可以用多个格式设置选项填充单个单元格的任何信息。
例如,我要在单元格A1中填充以下文本:“ Hello world,这是excel ”
这可能吗?如果可以,我应该使用哪种语法来做到这一点?
我们正在使用GitHub来存储代码存储库,并且我们希望所有开发人员在进行本地开发人员测试和合并之前,确保分支与master保持最新。
有两种使用master提交更新分支的方法:
master到我的分支feature_branch,然后推送feature_branchfeature_branch到master上,然后强制push feature_branch。鉴于相关团队当前正在使用1.(合并工作流程),我如何看到:
master分支,而不是远程的feature_branch。具有与GitHub集成的功能是最可取的,但是我也想知道如何从命令行执行此操作。
我知道我可以做一个git diff master..feature_branch,但是实际上给了我所有的更改(并且是针对本地分支的)。我只想知道前面和后面的提交数量,与本地master和远程之间显示的方式相同master
鉴于我有一个哈希数组abc和一个哈希ghi:
abc = [{
'a' => '1',
'b' => '2',
'c' => '3',
'd' => '4'
}]
ghi = {
'a' => '1',
'b' => '2'
}
Run Code Online (Sandbox Code Playgroud)
选择散列的最干净,最有效的方法是什么?abc包含所有键值对ghi?
我能够做到这一点:
abc.map {|n| n.slice(*ghi.keys) == ghi }.all?
Run Code Online (Sandbox Code Playgroud)
虽然它看起来不是很干净.
我在使用 Pandas 的 Python 程序中有两个数据框。我是熊猫的新手。
每个都有许多列和行 - 第一个类似于:
calc_1 calc_2 calc_3
0 34.3 43.1 42.0
2 3.0 4.0 5.0
3 6.1 6.1 6.2
4 4.2 4.3 4.5
Run Code Online (Sandbox Code Playgroud)
第二个类似于:
gender age
0 M 25
2 M 27
3 M 27
4 F 36
Run Code Online (Sandbox Code Playgroud)
对于每个整数行索引,在第二个数据框中都有一个相应的条目。我想将它们连接到行索引相等的结果数据框中,例如 SQL 中的内部连接。
我似乎无法正确理解。附加结果是我应该拥有的行数的 2 倍。信息来自 CSV。
calc_1 calc_2 calc_3 gender age
0 34.3 43.1 42.0 M 25
2 3.0 4.0 5.0 M 27
3 6.1 6.1 6.2 M 27
4 4.2 4.3 4.5 F 36
Run Code Online (Sandbox Code Playgroud)
如果可能,我想在加入时保留列顺序。
编辑: …
我有两个数组:
a = [1, 2, 3, 4]
b = [true, true, false, false]
Run Code Online (Sandbox Code Playgroud)
选择a其对应元素的元素的最佳方法b是true什么?在这个例子中,我期望:
result = [1, 2]
Run Code Online (Sandbox Code Playgroud)
我是这样做的:
zipped = a.zip(b)
zipped.select{ |z| z[1] }.map{ |n| n.first }
# => [1, 2]
Run Code Online (Sandbox Code Playgroud)
我想知道纯Ruby中的最佳解决方案,但我也愿意接受GSL等的建议.
表现:
array_size = 4000
iterations = 1000
Benchmark.bm do |bm|
bm.report do
iterations.times do
a.each_with_index.map { |a, i| a if b[i] }.compact
end
end
end
Benchmark.bm do |bm|
bm.report do
iterations.times do
zipped = a.zip(b).select{ |z| z[1] }.map{ |n| …Run Code Online (Sandbox Code Playgroud) 我有一个List<int>可以包含1到n值的值.
让我们说它们是四个整数{3,11,108,32}
我需要将整数列表构造成这样的字符串
(3,11,108,32) - 即.逗号分隔
我意识到这是非常微不足道的,但我正在寻找最有效的解决方案.
例如,如果您只有一个项目,则字符串中不应该有逗号,但应该存在所有其他项目之间.