我试图从cv2Python 中理解 Sobel 卷积。
根据文档,Sobel 内核是
-1 0 1
-2 0 2
-1 0 1
Run Code Online (Sandbox Code Playgroud)
因此,我尝试将其应用于以下img(二进制3x3数组):
0 1 0
1 0 1
0 1 0
Run Code Online (Sandbox Code Playgroud)
现在,我在解释输出时遇到了问题。我手工计算并得到了不同的结果。据我所知,我必须将内核放在每个像素的中心,(i,j)然后将元素相乘并求和。
因此,输出中的第一个条目应该是 2. 程序返回0。
我错了吗?但愿如此。
代码
import cv2
import numpy as np
img = np.array([[0,1,0],[1,0,1],[0,1,0]]).astype(float)
# Output dtype = cv2.CV_8U
sobelx8u = cv2.Sobel(img,cv2.CV_8U,1,0,ksize=3)
# Output dtype = cv2.CV_64F. Then take its absolute and convert to cv2.CV_8U
sobelx64f = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=3)
abs_sobel64f = …Run Code Online (Sandbox Code Playgroud) 我想创建一个像一个阴谋这样。
就我而言,我需要一个对称20x20矩阵,其中的条目(i,j)应从ns数据文件中的列中获取,该列的格式为(仅是一段):
areas ns i j
0.500000 1.00 10 10
0.513611 0.80 10 11
0.582778 0.12 10 12
0.725278 0.00 10 13
0.528472 0.59 10 14
0.655000 0.00 10 15
0.616667 0.03 10 16
0.751806 0.00 10 17
0.519722 0.71 10 18
0.917045 0.00 10 19
0.849583 0.00 10 20
0.804333 0.00 1 10
0.500000 1.00 11 11
0.599861 0.06 11 12
0.611389 0.03 11 13
0.525417 0.64 11 14
0.533889 0.52 …Run Code Online (Sandbox Code Playgroud) 我正在寻找解决方案半个小时,但没有进展。
考虑清单
QStringList foo = {};
for (int i=1; i<8; i++){
foo << "0";
}
Run Code Online (Sandbox Code Playgroud)
如果单击某个复选框,我想将列表的值更改为"1"。
那么,例如,如何将第三个更改0为1?类似(伪代码)的东西foo.replace(3,"0","1")。