小编Kos*_*osh的帖子

为什么 cv2.COLOR_RGB2GRAY 和 cv2.COLOR_BGR2GRAY 会给出不同的结果?

我一直认为将图像从彩色转换为灰度很简单:每个像素的强度将是每个颜色通道强度的平均值。但我注意到了这一点,cv2.COLOR_RGB2GRAYcv2.COLOR_BGR2GRAY给出了不同的结果。当我用它们进行试验时,我还发现它也不同于每个颜色通道的强度平均值。

PS当我发现时我完全感到困惑

img_read_as_color[:,:,0]/3+img_read_as_color[:,:,1]/3+img_read_as_color[:,:,2]/3 == (img_read_as_color[:,:,0]+img_read_as_color[:,:,1]+img_read_as_color[:,:,2])/3
Run Code Online (Sandbox Code Playgroud)

但是当显示为图像时

(img_read_as_color[:,:,0]+img_read_as_color[:,:,1]+img_read_as_color[:,:,2])/3
Run Code Online (Sandbox Code Playgroud)

看起来像

img_read_as_color[:,:,0]+img_read_as_color[:,:,1]+img_read_as_color[:,:,2]
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释为什么会这样吗?

我的完整代码:

import matplotlib.pyplot as plt
import cv2

sample = r'G:\Python\knight-mare\screenshots\2020-07-12-02-40-44.jpg'
img_read_as_grayscale = cv2.imread(sample, cv2.IMREAD_GRAYSCALE)
img_read_as_color = cv2.imread(sample, cv2.IMREAD_COLOR)
img_RGB_to_grayscale = cv2.cvtColor(img_read_as_color, cv2.COLOR_RGB2GRAY)
img_BGR_to_grayscale = cv2.cvtColor(img_read_as_color, cv2.COLOR_BGR2GRAY)
plt.imshow(img_read_as_grayscale)
plt.title('img_read_as_grayscale')
plt.show()
plt.imshow(img_read_as_color)
plt.title('img_read_as_color')
plt.show()
plt.imshow(img_RGB_to_grayscale)
plt.title('img_RGB_to_grayscale')
plt.show()
plt.imshow(img_BGR_to_grayscale)
plt.title('img_BGR_to_grayscale')
plt.show()

channel_avg_div_separately = img_read_as_color[:,:,0]/3+img_read_as_color[:,:,1]/3+img_read_as_color[:,:,2]/3
channel_avg_div_together = (img_read_as_color[:,:,0]+img_read_as_color[:,:,1]+img_read_as_color[:,:,2])/3
channel_sum = img_read_as_color[:,:,0]+img_read_as_color[:,:,1]+img_read_as_color[:,:,2]
plt.imshow(channel_avg_div_separately)
plt.title('channel_avg_div_separately')
plt.show()
plt.imshow(channel_avg_div_together)
plt.title('channel_avg_div_together')
plt.show()
plt.imshow(channel_sum)
plt.title('channel_sum')
plt.show()
Run Code Online (Sandbox Code Playgroud)

图像读取为灰度图像读取为彩色图像读取为由 RGB2GRAY 转换的彩色图像读取为由 BGR2GRAY 转换的彩色图像读取为彩色,每个通道除以 3,然后相加图像读取为彩色,所有通道加在一起,然后除以 3 图像读取为彩色,只需添加通道

opencv image-processing python-3.x

6
推荐指数
2
解决办法
5173
查看次数

解析CSV时出现ZWNBSP

我有一个 CSV 文件,我想检查它是否包含应有的所有数据。但看起来 ZWNBSP 出现在第一个字符串中第一个列名称的开头。

我的简化代码是

@Test
void parseCsvTest() throws Exception {
    Configuration.holdBrowserOpen = true;
    ClassLoader classLoader = getClass().getClassLoader();
    try (
            InputStream inputStream = classLoader.getResourceAsStream("files/csv_example.csv");
            CSVReader reader = new CSVReader(new InputStreamReader(inputStream))
    ) {
        List<String[]> content = reader.readAll();
        var csvStrings0line = content.get(0);
        var csv1stElement = csvStrings0line[0];
        var csv1stElementShouldBe = "Timestamp";
        assertEquals(csv1stElementShouldBe,csv1stElement);
Run Code Online (Sandbox Code Playgroud)

我的 CSV 包含

"Timestamp","Source","EventName","CountryId","Platform","AppVersion","DeviceType","OsVersion"
"2022-05-02T14:56:59.536987Z","courierapp","order_delivered_sent","643","ios","3.11.0","iPhone 11","15.4.1"
"2022-05-02T14:57:35.849328Z","courierapp","order_delivered_sent","643","ios","3.11.0","iPhone 8","15.3.1"
Run Code Online (Sandbox Code Playgroud)

我的测试失败了

expected: <Timestamp> but was: <Timestamp>
Expected :Timestamp
Actual   :Timestamp
<Click to see difference>
Run Code Online (Sandbox Code Playgroud)

单击查看差异显示实际文本的开头有一个 ZWNBSP。

在此输入图像描述

将我的文本复制粘贴到用于显示不可打印的 unicode 字符的在线工具https://www.soscisurvey.de/tools/view-chars.php在行尾仅显示 CR …

java csv junit special-characters

6
推荐指数
1
解决办法
1万
查看次数

KQL:连接表后合并2列

我想合并连接了 2 个表的 2 列。这是我的代码:

let Table1 = datatable(ver: string, number:int) 
[
1.0, 5, 
2.0, 5,
2.1, 3 
];
//
let Table2 = datatable(ver: string, number:int) 
[ 
2.0, 3,
2.1, 2,
3.0, 1 
];
//
Table2
| join kind = fullouter Table1 on ver
| extend Delta = number1 - number
Run Code Online (Sandbox Code Playgroud)

这就是我得到的:

在此输入图像描述

这就是我需要的:

在此输入图像描述

join kql azure-data-explorer

4
推荐指数
1
解决办法
4312
查看次数

是否可以将 Python matplotlib.pyplot.hist 中的 X 轴从 bin 边缘切换到精确值?

是否可以将 Python matplotlib.pyplot.hist 中的 X 轴从 bin 边缘切换到精确值?换句话说,这就是我得到的:

dataset = [0,1,1,1,2,2,3,3,4]
plt.hist(dataset, 5, rwidth=0.9)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

这就是我需要的: 在此处输入图片说明

matplotlib histogram python-3.x

3
推荐指数
1
解决办法
61
查看次数

Win10下curl-换行符?

我的IDE生成的curl可以将HTTP请求导出为curl命令。它们看起来像这样:

curl --request POST \
  --url http://test.api.local/api/tickets/route \
  --header 'accept-encoding: gzip' \
  --header 'content-type: application/json' \
  --data '{
  "start_datetime": "2020-11-10T09:30Z",
  "brand_id": 33,
  "model_id": 90,
  "class": 1,
  "country_code": "US",
  "contract_id": 120071,
}'
Run Code Online (Sandbox Code Playgroud)

但是当我在Win10命令提示符或powershell中运行它们时,出现很多错误:

PS C:\Users\Kosh> curl --request POST \
>>   --url http://test.api.local/api/tickets/route \
>>   --header 'accept-encoding: gzip' \
>>   --header 'content-type: application/json' \
>>   --data '{
>>   "start_datetime": "2020-11-10T09:30Z",
>>   "brand_id": 33,
>>   "model_id": 90,
>>   "class": 1,
>>   "country_code": "US",
>>   "contract_id": 120071,
>> }'
At line:2 char:5
+   --url …
Run Code Online (Sandbox Code Playgroud)

windows curl cmd

3
推荐指数
1
解决办法
711
查看次数

Flutter 地理定位器权限

我的代码是:

class _LoadingScreenState extends State<LoadingScreen> {
  void getLocation() async {
    Position position = await Geolocator.getCurrentPosition(
        desiredAccuracy: LocationAccuracy.low);
    print(position);
  }
Run Code Online (Sandbox Code Playgroud)

我在 Android 清单中添加了以下内容:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

Android 模拟器,GPS 已打开。

尝试访问地理位置后,我收到错误:

E/flutter ( 5034): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: User denied permissions to access the device's location.
E/flutter ( 5034): #0      MethodChannelGeolocator.getCurrentPosition (package:geolocator_platform_interface/src/implementations/method_channel_geolocator.dart:127:7)
E/flutter ( 5034): <asynchronous suspension>
E/flutter ( 5034): #1      _LoadingScreenState.getLocation (package:clima/screens/loading_screen.dart:11:25)
E/flutter ( 5034): <asynchronous suspension>
Run Code Online (Sandbox Code Playgroud)

Settings - Security & location - Privacy - Location - App level permissions我的应用程序中,权限已关闭。 …

geolocation flutter

3
推荐指数
1
解决办法
2万
查看次数

从元组列表中获取一列

我有一个元组列表。是否可以在不使用 numpy、pandas 等的情况下从每个元组中获取一列?

lst = [('a','b','c'),
       ('d','e','f')]
Run Code Online (Sandbox Code Playgroud)

假设我想得到 'b','e',但是

lst[:][1]
Run Code Online (Sandbox Code Playgroud)

我明白了

('d'、'e'、'f')

python tuples list

2
推荐指数
1
解决办法
6425
查看次数

WHERE条件的KQL表现

使用ADD语句连接WHERE条件和单独添加它们在KQL性能上有什么区别吗?

会喜欢吗

Events
| where Source == "myapp"
and Timestamp > ago(7d)
and isnotnull(DeviceId)
and isnotnull(UserId)
Run Code Online (Sandbox Code Playgroud)

Events
| where Source == "myapp"
| where Timestamp > ago(7d)
| where isnotnull(DeviceId)
| where isnotnull(UserId)
Run Code Online (Sandbox Code Playgroud)

where-clause kql azure-data-explorer

1
推荐指数
1
解决办法
339
查看次数