我想逐个像素地减去两个图像以检查它们的相似程度.图像具有相同的尺寸,一个稍暗,并且在亮度旁边它们没有区别.但是我在结果中得到了那些小点.我是否减去了这两个图像?两者都是bmp文件.
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Main2 {
public static void main(String[] args) throws Exception {
int[][][] ch = new int[4][4][4];
BufferedImage image1 = ImageIO.read(new File("1.bmp"));
BufferedImage image2 = ImageIO.read(new File("2.bmp"));
BufferedImage image3 = new BufferedImage(image1.getWidth(), image1.getHeight(), image1.getType());
int color;
for(int x = 0; x < image1.getWidth(); x++)
for(int y = 0; y < image1.getHeight(); y++) {
color = Math.abs(image2.getRGB(x, y) - image1.getRGB(x, y));
image3.setRGB(x, y, color);
}
ImageIO.write(image3, "bmp", new File("image.bmp"));
}
}
Run Code Online (Sandbox Code Playgroud)
图片1

图2

结果
我需要从数字a中减去0.5并将答案设置为数字b.我的代码看起来会起作用,但我不确定我做错了什么.我得到的错误是在减法线上,错误说incompatible type for argument 1 of 'decimalNumberBySubtracting:'.
继承我的标题:(注意:我只显示数字,因为标题很大)
NSDecimalNumber *a;
NSDecimalNumber *b;
Run Code Online (Sandbox Code Playgroud)
继承人:(假设这是在IBAction中)
b = [a decimalNumberBySubtracting:0.5];
Run Code Online (Sandbox Code Playgroud)
如果有人知道如何正确减去任何帮助将不胜感激.
我已经在java中成功实现了一个分流码算法.算法本身很简单但是我在使用tokenizer时遇到了麻烦.目前,该算法适用于我想要的一切,不包括一件事.如何区分减法( - )和负数( - )之间的区别
例如4-3是减法但-4 + 3是负数
我现在知道如何找出什么时候它应该是负数,什么时候它应该是负数,但算法应该放在哪里,因为如果你像功能一样使用它它不会总是起作用的例子
3 + 4*2/ - (1 - 5)^ 2 ^ 3
当1-5变为-4时,它将变为4,然后变为平方和立方
就像3 + 4*2/cos(1 - 5)^ 2 ^ 3一样,你会在平方和立方之前取余弦
但在真正的数学中你不会用 - 因为你真正说的是3 + 4*2/ - ((1 - 5)^ 2 ^ 3)才能得到正确的价值
我这样做:
a = [1,2,3,4]
b = [2,3,4,5]
c = b - a
put c
Run Code Online (Sandbox Code Playgroud)
我得到了这个答案 - > [1]
我想要这个答案 - > [1,1,1,1](像矩阵加/减)
我试过这个:
c.each {|e| c[e] = b[e] - a[e]}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个答案: [1,0,0,0]
有人能给我一个正确的方法吗?非常感谢!
我正在寻找Java中的库或助手类,它允许我执行日期间隔求和和减法.
例如,假设我有以下日期间隔:
A = ["2015-01-01 00:00", "2015-01-20 00:00"]
B = ["2015-01-05 00:00", "2015-01-10 00:00"]
C = ["2015-01-11 00:00", "2015-01-14 00:00"]
D = ["2015-01-19 00:00", "2015-01-25 00:00"]
1 A 20
|----------------------------------|
|---------| |----------| |------------|
5 B 10 11 C 14 19 D 25
Run Code Online (Sandbox Code Playgroud)
让我们说我想计算以下内容:
A - B - C + D = { ["2015-01-01 00:00", "2015-01-05 00:00"[,
]"2015-01-10 00:00", "2015-01-11 00:00"[,
]"2015-01-14 00:00", "2015-01-25 00:00"] }
1 5 10 11 14 25
|---| |---| |----------------|
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用纯Java构建自己的逻辑,但我宁愿不重新发明轮子......
我正在研究Joda-Time,但我无法弄清楚如何使用它来执行此类操作.
非常感谢!
我有两个不相关的表:
contribution(id,amount, create_at, user_id)
solicitude(id, amount, create_at, status_id, type_id, user_id)
Run Code Online (Sandbox Code Playgroud)
我需要减去用户的贡献金额和关心金额的总和,但结果不能是负数。
我怎样才能做到这一点?函数还是查询?
我尝试了这个查询:
SELECT sum(contribution.amount)
- (SELECT sum(solicitude.amount)
FROM solicitude
WHERE user_id = 1 AND status_id = 1) as total
FROM contribution
WHERE contribution.user_id = 1
Run Code Online (Sandbox Code Playgroud) 我有2个词典,A和B. A有700000个键值对,B有560000个键值对.来自B的所有键值对都存在于A中,但A中的某些键是具有不同值的重复项,而某些键具有重复值但是唯一键.我想从A中减去B,所以我可以得到剩余的140000个键值对.当我根据键标识减去键值对时,由于重复键,我删除了150000个键值对.我想根据每个键值对的BOTH键和值的标识减去键值对,所以我得到140000.任何建议都是受欢迎的.
这是一个例子:
A = {'10':1, '11':1, '12':1, '10':2, '11':2, '11':3}
B = {'11':1, '11':2}
Run Code Online (Sandbox Code Playgroud)
我想得到:AB = {'10':1,'12':1,'10':2,'11':3}
我不想得到:
a)基于密钥时:
{'10':1, '12':1, '10':2}
Run Code Online (Sandbox Code Playgroud)
要么
b)基于价值观:
{'11':3}
Run Code Online (Sandbox Code Playgroud) 我有一个包含两列的数据框:类别和日期时间
我想创建一个新列,显示当前行与前一行的日期时间之间的差异,在每个 category 重新开始。
我拥有的:
Category Datetime
A 2018-02-01 01:51:04
A 2018-02-01 02:04:04
B 2018-02-01 02:28:34
B 2018-02-01 02:41:34
B 2018-02-01 02:45:34
Run Code Online (Sandbox Code Playgroud)
我想要的是:
Category Datetime Difference
A 2018-02-01 01:51:04 NaT
A 2018-02-01 02:04:04 00:13:00
B 2018-02-01 02:28:34 NaT
B 2018-02-01 02:41:34 00:13:00
B 2018-02-01 02:45:34 00:04:00
Run Code Online (Sandbox Code Playgroud)
编辑:
@sacul 我尝试了你的解决方案,df['Difference'] = list(by_group.apply(lambda x: x['Datetime']-x['Datetime'].shift()))但它给了我奇怪的结果......这是我正在使用的实际数据:
Category Datetime Difference
A 2/1/18 1:51 NaT
A 2/1/18 2:04 1 days 02:52:00
B 2/1/18 2:28 NaT
C 2/1/18 2:41 …Run Code Online (Sandbox Code Playgroud) 我有一个带有两个多索引级别的 Pandas 数据框
df
Out[202]:
A B C D
first second
1 1 -0.080810 0.865259 -0.371148 0.346480
2 -0.026636 1.259460 -1.109295 -0.871204
3 0.372008 -1.778272 0.727838 0.620727
4 0.918075 0.564741 2.027432 -1.614162
5 -0.373527 -0.186027 0.225399 0.722733
2 1 0.344241 0.170596 -0.050763 2.692102
2 -1.665413 0.357033 -0.691327 -0.983103
3 1.277470 -1.841702 0.582107 -0.454315
4 2.374108 -0.557879 0.797296 0.803622
5 -1.001092 0.131217 0.131378 -0.636299
Run Code Online (Sandbox Code Playgroud)
我还有一个由原始数据帧中的两行组成的第二个数据帧,对应于多索引级别“second == 1”
to_subtract = df.query('second == 1')
to_subtract
Out[200]:
A B C D
first second
1 …Run Code Online (Sandbox Code Playgroud) 我试图计算今天和由历史数据组成的熊猫数据之间的天数差异。以下是预期的代码:
df['diff'] = pd.to_datetime( df['date']) - pd.datetime.now().date()
Run Code Online (Sandbox Code Playgroud)
但是,它会产生以下错误:
类型错误:不支持的操作数类型 -:'DatetimeIndex' 和 'datetime.date'
pandas 表中的日期列如下所示:
0 2018-12-18
1 2018-12-18
2 2018-12-18
3 2018-12-18
4 2018-12-18
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误。提前致谢。