小编Bou*_*Dev的帖子

如何在Java中创建不带Year参数的新Date对象?

我正在尝试使用new SimpleDateFormat来解析dd-MM格式的字符串。基本上,我想从字符串中创建一个日期对象并保留在数据库中。

当我检查数据库条目时,我看到它将1970追加到year列。我相信这是空时提供的年份的默认值。有没有一种方法可以防止年份值。我不想存储有关年份的信息。

我的代码-

String dateOfBirth = "14-Feb";
dbObject.save(new SimpleDateFormat("dd-MMM").parse(dateOfBirth));
Run Code Online (Sandbox Code Playgroud)

为了简单起见,假设dbObject.save()该方法期望提供日期对象。我不想创建一个值的日期-1970年2月14日,相反它应该只是14年2月。

java time jsp date simpledateformat

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

如何在 AWS S3 中上传图像缓冲区数据?

我正在尝试将图像中的缓冲区数据上传到 S3。它上传得很好。但是当我尝试在 S3 中下载/查看图像时,它会引发错误。我尝试了以下 -

  1. 该图像以缓冲区格式 (JSON) 提供给我。我无法改变这一点

let image = { "type": "Buffer", "data": [45, 45, 45....]

let buf = new Buffer(image )

let params = {
  Bucket: "bucketName",
  Key: "TestImage123haha.PNG",
  Body: buf ,
  ACL: 'public-read',
  ContentType: 'image/jpeg'
};

s3.upload(params, function(err, data) {
  if (err) {
    console.log('ERROR MSG: ', err);
  } else {
    console.log('Successfully uploaded data' + data.Location);
  }
})
Run Code Online (Sandbox Code Playgroud)

  1. 上传图像后,如果我尝试访问存储它的存储桶的 URL 并查看图像,这就是我得到的 -

回复

  1. 当我打印缓冲区数据时 -buf在控制台中,这就是我得到的 -

在控制台中打印缓冲区数据的结果

javascript image amazon-s3 node.js aws-sdk

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

如何在Python中使用OpenCV提取图像的特定部分?

我试图通过执行Canny边缘检测来提取图像的一部分.我成功地创建了该对象的蒙版.但是当我bitwise_and用原始图像执行操作时,为了提取前景部分,我收到以下错误.

OpenCV Error: Assertion failed ((mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1)) in cv::binary_op, file C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp, line 241
    Traceback (most recent call last):
      File "C:\Users\Boudhayan Dev\Desktop\extraction.py", line 37, in <module>
        new_image = cv2.bitwise_and(img_rgb,img_rgb,mask=mask)
    cv2.error: C:\projects\opencv-python\opencv\modules\core\src\arithm.cpp:241: error: (-215) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function cv::binary_op
Run Code Online (Sandbox Code Playgroud)

我的代码如下 -

import cv2
import numpy as np

img_rgb = cv2.imread("3.jpg")
cv2.namedWindow("Original Image",cv2.WINDOW_NORMAL)

img = cv2.cvtColor(img_rgb,cv2.COLOR_RGB2HSV)
img = cv2.bilateralFilter(img,9,105,105)
r,g,b=cv2.split(img)
equalize1= cv2.equalizeHist(r)
equalize2= cv2.equalizeHist(g)
equalize3= cv2.equalizeHist(b)
equalize=cv2.merge((r,g,b)) …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy edge-detection opencv3.0

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

如何使用 Spring Data 从 Spring Boot 中的实体中选择几个字段?

我有一个用例,我想显示实体的内容但隐藏某些字段。我的实体如下 -

实体

public class StudentDetail {

@Id
private Long ID;
private String firstName;
private String middleName;
private String lastName;

@JsonFormat(pattern="dd-MMM-yyyy", timezone="IST")
@Temporal(TemporalType.DATE)
private Date dateOfBirth;
}
Run Code Online (Sandbox Code Playgroud)

它还有许多其他属性,我在这里没有展示。

存储库-

@Repository
public interface StudentDetailsRepository extends JpaRepository<StudentDetail, Integer> {
@Query("select d from StudentDetail d where month(d.dateOfBirth) = ?1 ")
    List<StudentDetail> getStudentListBasedOnDateOfBirth(int month);

}
Run Code Online (Sandbox Code Playgroud)

服务等级-

public List<StudentDetail> getStudentBirthdayDetails(int month) {
        List<StudentDetail> StudentDetail = StudentDetailsRepository.getStudentListBasedOnDateOfBirth(month);
        return StudentDetail;
    }
Run Code Online (Sandbox Code Playgroud)

还有一个控制器类,它通过month参数调用 Service 类来过滤数据集。

我想要做的是修改 Repository 类中的查询并仅包含firstname,middleNamelastName属性。Repository 类应该隐藏该dateOfBirth …

java spring spring-mvc spring-data-jpa spring-boot

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

如何从 NodeJS 中的多部分响应中提取/解析二进制内容?

我想从多部分响应中提取二进制内容,如下所示 - 多部分响应

我无权访问任何请求对象(Express/NodeJS)。我只有这个响应对象,我想解析并提取它的二进制部分。

编辑-

为了让事情更清楚 -

  1. 我有一个端点(不是传统的 Express 应用程序,而是 FaaS) - 称为“/fileUpload”

  2. 该端点接受所有类型的请求 - GET、POST、PUT (FaaS)。

  3. 当我在表单数据中使用文件发出 POST/PUT 请求时testImage.PNG,我会收到请求对象中的内容。FaaS 运行时提供 req 对象作为函数处理程序的参数。

  4. 现在,当我打印传入 POST 请求的 request.body 时,我得到的内容如上图所示。

  5. 如果我尝试将此二进制内容直接上传到 S3,则会导致图像损坏,我认为这是由于多部分响应中存在其他内容,例如 - Content-Disposition...

我想做的是,解析附加的多部分内容,例如 Content-Type 标头和多部分边界等,以便我只获得图像二进制文件。

javascript multipartform-data multipart node.js express

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

如何使用 OpenCV 检测图像帧中的对象?

我正在开发一个使用 Raspberry Pi 的漫游车,它可以清扫房间并捡起掉在地上的物体。为了检测物体,我使用了一个参考 Image ,它是在漫游者操作开始时拍摄的,以及一个每 10 秒点击一次的 Image(新图像)。为了确定图像帧中是否有变化,我在参考图像和新图像之间进行了图像减法。如果发现任何差异,它会在其周围绘制轮廓,如果轮廓面积大于某个阈值(注意步骤),则得出结论存在对象。

我正在使用以下代码 -

import numpy as np
import cv2,time

img=cv2.imread("object1.jpg")
img1=cv2.imread("object2.jpg")
sub=cv2.subtract(img,img1)

gray=cv2.cvtColor(sub,cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray,(3,3),0)
_, contours, _= cv2.findContours(blur,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
c=max(contours,key=cv2.contourArea)
print(cv2.contourArea(c))

if cv2.contourArea>20000:
   print("Object detected !")
Run Code Online (Sandbox Code Playgroud)

上面的代码仅使用 2 张图像来计算它们的差异并确定是否存在对象。请注意,我没有在此处发布将在我的项目中使用的原始代码。

现在,上面的代码适用于非常可控的情况,例如,当图像背景非常恒定或其中没有阴影时。但考虑到漫游车将在房间内四处移动,即使画面中没有真实物体,光照变化也有可能触发错误的物体检测。差异可能是由于阴影效果的虚假轮廓而触发的。

我想知道,是否有任何其他方法可以在不进行前景/背景图像减法的情况下实现此对象检测。我也考虑过使用超声波传感器来检测物体的存在,但这不是一个非常可靠的选择。我更喜欢基于图像处理的解决方案。

谢谢你 。

================================================== ========================

编辑 1 -

所以,我决定稍微改变一下算法。我已经对前景和背景图像进行了阈值处理,然后在二进制图像之间执行了 absdiff ,以获得任何帧更改(对象)。代码如下——

import numpy as np
import cv2,time

img1=cv2.imread("back.jpeg")
blur1 = cv2.GaussianBlur(img1,(5,5),0)
gray1=cv2.cvtColor(blur1,cv2.COLOR_BGR2GRAY)
ret,thresh1 = cv2.threshold(gray1,65,255,cv2.THRESH_BINARY_INV)

img2=cv2.imread("front.jpeg")
blur2 = cv2.GaussianBlur(img2,(5,5),0)
gray2=cv2.cvtColor(blur2,cv2.COLOR_BGR2GRAY)
ret,thresh2 = cv2.threshold(gray2,65,255,cv2.THRESH_BINARY_INV)

diff=cv2.absdiff(thresh2,thresh1)
diff=cv2.bitwise_xor(diff,thresh1)

kernel = np.ones((2,2),np.uint8)
diff=cv2.erode(diff,kernel,iterations = 1) …
Run Code Online (Sandbox Code Playgroud)

python opencv image image-processing raspberry-pi

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

如何在 Jinja2 中使用命名空间类使用全局变量?

因此,我一直在尝试在 Jinja2 模板中创建一个全局变量,该变量可在所有循环和块中使用。我正在尝试使用 Jinja2 的命名空间类。但是,我遇到了以下问题。

HTML -

{% set ns = namespace(items=0) %}
{% for line in range(3) %}
    {% set ns.items = ns.items + line %}
{% endfor %}

{{ ns.items }}
Run Code Online (Sandbox Code Playgroud)

Python -

@app.route('/', methods=['GET', 'POST'])
@app.route('/index', methods=['GET', 'POST'])
@login_required
def index():
    return render_template('index_test.html')
Run Code Online (Sandbox Code Playgroud)

错误-

jinja2.exceptions.TemplateSyntaxError
jinja2.exceptions.TemplateSyntaxError: expected token 'end of statement block', got '.'

Traceback (most recent call last)
File "d:\python\lib\site-packages\flask\app.py", line 1997, in __call__
return self.wsgi_app(environ, start_response)
File "d:\python\lib\site-packages\flask\app.py", line 1985, in wsgi_app
response = self.handle_exception(e) …
Run Code Online (Sandbox Code Playgroud)

html python namespaces jinja2 flask

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

为什么 JavaScript 的构造函数中需要“this”关键字?

我正在尝试使用 JavaScript 中的 new 关键字实例化构造函数。然而,它并没有按预期工作——

var a = function () {
            abc = function () {
                      return  "abc";
                  }
        }

var obj = new a();
Run Code Online (Sandbox Code Playgroud)

如果我做 -

obj.a();。它说 -

Uncaught TypeError: obj.abc is not a function
Run Code Online (Sandbox Code Playgroud)

但如果我只是在没有对象的情况下访问它obj,它就可以工作

abc();
Run Code Online (Sandbox Code Playgroud)

this但如果我使用内部函数,整个问题就解决了-

var a = function () {
            this.abc = function () {
                           return  "abc";
                       }
        }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我声明时abc()没有“this”关键字,那么它的作用域不在函数内a。为什么在函数内部声明它时会被视为全局函数a

javascript scope function object this

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