我正在尝试打开一个文件并创建一个列表,其中每行都从文件中读取.
i=0
List=[""]
for Line in inFile:
List[i]=Line.split(",")
i+=1
print List
Run Code Online (Sandbox Code Playgroud)
但是这个示例代码因为这样的i+=1
说法而给我一个错误index is out of range
.这是我的问题?如何编写代码以便使用InFile中的每个新行增加列表?
如何平滑阈值化后获得的血管二元图像的边缘.
我尝试了一种类似于这种方法的方法,但没有得到我预期的结果.
这是代码:
import cv2
import numpy as np
INPUT = cv2.imread('so-br-in.png',0)
MASK = np.array(INPUT/255.0, dtype='float32')
MASK = cv2.GaussianBlur(MASK, (5,5), 11)
BG = np.ones([INPUT.shape[0], INPUT.shape[1], 1], dtype='uint8')*255
OUT_F = np.ones([INPUT.shape[0], INPUT.shape[1], 1],dtype='uint8')
for r in range(INPUT.shape[0]):
for c in range(INPUT.shape[1]):
OUT_F[r][c] = int(BG[r][c]*(MASK[r][c]) + INPUT[r][c]*(1-MASK[r][c]))
cv2.imwrite('brain-out.png', OUT_F)
Run Code Online (Sandbox Code Playgroud)
可以做些什么来改善这些粗糙边缘的平滑度?
编辑
我想像http://pscs5.tumblr.com/post/60284570543那样平滑边缘.如何在OpenCV中执行此操作?
minAreaRect
在OpenCV中返回一个旋转的矩形.如何裁剪矩形内部的图像部分?
boxPoints
返回旋转矩形的角点的坐标,这样可以通过循环框内的点来访问像素,但是有更快的方法在Python中裁剪吗?
编辑
请参阅code
下面的答案.
我需要一种算法或方法来生成调色板以着色朱莉娅设置图像.当使用转义时间算法生成图像时,我举例说明如下图:
如何获得与此类似的图像?另外,Julia集应该使用什么颜色的平滑算法?
以下是澄清的代码段:
int max_iter = 256;
ComplexNumber constant = new ComplexNumber(cReal,cImag);
float Saturation = 1f;
for(int X=0; X<WIDTH; X++)
{
for(int Y=0; Y<HEIGHT; Y++)
{
ComplexNumber oldz = new ComplexNumber();
ComplexNumber newz = new ComplexNumber(2.0*(X-WIDTH/2)/(WIDTH/2), 1.33*(Y-HEIGHT/2)/(HEIGHT/2) );
int i;
for(i=0;i<max_iter; i++)
{
oldz = newz;
newz = newz.square();
newz.add(constant);
if(newz.mod() > 2)
break;
}
float Brightness = i < max_iter ? 1f : 0;
float Hue = (i%256)/255.0f;
Color color = Color.getHSBColor((float)Hue, Saturation, Brightness); …
Run Code Online (Sandbox Code Playgroud) 我有一个RGB图像img
,其是形状(2560L, 1920L, 3L)
和另一单信道的图像mask
,其是形状(2560L, 1920L)
.现在,我想制作这种mask
形状,(2560L, 1920L, 3L)
即我想将这个单通道数据复制到所有三个通道中.
我这样做如下.
np.array([[[j,j,j] for j in i] for i in mask])
Run Code Online (Sandbox Code Playgroud)
有没有更快的方法来使用numpy
?
我使用numpy从多变量法线中采样,如下所示.
mu = [0, 0]
cov = np.array([[1, 0.5], [0.5, 1]]).astype(np.float32)
np.random.multivariate_normal(mu, cov)
Run Code Online (Sandbox Code Playgroud)
它给了我以下警告.
运行时警告:协方差不是正的 - 半定的.
矩阵显然是PSD.但是,当我使用np.float64数组时,它工作正常.我需要协方差矩阵为np.float32.我究竟做错了什么?
我使用自定义方案为Fitbit实现OAuth,为此我需要Activity
在用户登录默认浏览器后从堆栈顶部使用调用实例,并重定向到CALLBACK URL.而不是onNewIntent()
被称为,Activity
只是重新创建,这不是我需要的.
<activity
android:name=".AppsAndDevicesActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="snbr" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码从Fragment打开浏览器:
String url = Fitbit.buildAuthenticationURL();
Log.d("URL", url);
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
this.getActivity().startActivity(browserIntent);
Run Code Online (Sandbox Code Playgroud) android android-manifest android-intent android-fragments android-activity
我在MATLAB中找到了下图的HOG特征向量.
我使用了以下代码.
I = imread('input.jpg');
I = rgb2gray(I);
[features, visualization] = extractHOGFeatures(I,'CellSize',[16 16]);
Run Code Online (Sandbox Code Playgroud)
features
出来是一个1x1944
向量,我需要减少这个向量的维数(比方说1x100
),我应该采用什么方法?
我想到了主成分分析,并在MATLAB中运行了以下内容.
prinvec = pca(features);
Run Code Online (Sandbox Code Playgroud)
prinvec
出来是一个空矩阵(1944x0
).我做错了吗?如果不是PCA,我可以使用哪些其他方法来减小尺寸?
我需要逐像素读取和写入图像(我正在生成分形)。当我尝试使用图像大小时,我意识到当图像大小很大(例如 24000x18000)时写入图像BufferedImage
会导致OutOfMemoryError
. 为了解决这个问题,我曾经-Xmx -Xms
增加堆大小。
有没有一种方法可以按像素写入图像,而无需将整个图像加载到内存中?读取(和修改)大图像也是如此。
编辑
我从左到右、从上到下逐个像素地进行操作。
我正在实现一个函数来执行N次单值计算.我写了以下代码.
performN :: Monad m => Int -> m t -> m [t]
performN 0 m = return []
performN n m =
do x1<- m
x2<- if n == 1 then return [] else (m:performN (n-2) m)
return (x1:x2)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
:264:44:错误:
•无法将类型'm'与'[]'匹配'
''是一个由
类型签名绑定的刚性类型变量:
performN :: forall(m ::* - >*)t .Monad m => Int - > mt - > m [t]
at:260:13
预期类型:[mt]
实际类型:m [t]
•在'(:)'的第二个参数中,即'performN(n) - 2)m'
在表达式中:(m:performN(n - 2)m)
在'do'块的stmt中:
x2 < - 如果n == 1则返回[] else(m:performN(n …
def counter(n):
if n < 0:
return
else:
print '1st print', n
counter(n-1)
print '2nd print', n
print counter(3)
# 1st print 3
# 1st print 2
# 1st print 1
# 1st print 0
# 2nd print 0
# 2nd print 1
# 2nd print 2
# 2nd print 3
# None
Run Code Online (Sandbox Code Playgroud)
所以在摆弄了递归函数后,我意识到一些非常特殊的东西,我无法完全绕过它.我理解它从3到0打印的函数的第一部分,但是当它从0再次打印到3时我不理解第二部分.当n = 0时,该函数不会停止吗?