300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 强烈推荐代码生成器Cursor

强烈推荐代码生成器Cursor

时间:2019-08-24 15:15:25

相关推荐

强烈推荐代码生成器Cursor

Cursor 官网

登录可用,免费版一个月可以提问 100 次。

对话形式,支持所有语言

直接问一个任务,能给出任务Demo

如实现图像相似度算法

// 导入OpenCV库#include <opencv2/opencv.hpp>using namespace cv;int main(){// 读取两张图片Mat img1 = imread("image1.jpg");Mat img2 = imread("image2.jpg");// 将图片转换为灰度图cvtColor(img1, img1, COLOR_BGR2GRAY);cvtColor(img2, img2, COLOR_BGR2GRAY);// 计算直方图Mat hist1, hist2;calcHist(&img1, 1, 0, Mat(), hist1, 1, {256}, {0, 256});calcHist(&img2, 1, 0, Mat(), hist2, 1, {256}, {0, 256});// 计算相似度double similarity = compareHist(hist1, hist2, HISTCMP_CORREL);// 输出相似度std::cout << "相似度为:" << similarity << std::endl;return 0;

更多图像匹配算法

matchTemplate(Img1, Img2, result, cv::TM_CCOEFF_NORMED, ROI);

能复现所有已知功能及算法
如实现所有基本类型的互斥锁

template<typename T>class ReadWriteLock {public:// 读操作T read() {std::shared_lock<std::shared_mutex> lock(mutex_);return (value_);}// 写操作void write(T value) {std::unique_lock<std::shared_mutex> lock(mutex_);value_ = value;}private:T value_;std::shared_mutex mutex_;};

写一个不确定个数传参Demo

void fun(const double noSim, ...){va_list args;va_start(args, noSim);const double Z = va_arg(args, const double);const cv::Mat rb = va_arg(args, const cv::Mat);const SimilarityBase::Ptr spSim = va_arg(args, const SimilarityBase::Ptr);va_end(args);}

比如实现ArcFace损失函数

import mathimport tensorflow as tffrom unittest.mock import MagicMockdef arcface_loss(embeddings, labels, out_num, s=64.0, m=0.5):cos_m = math.cos(m)sin_m = math.sin(m)mm = sin_m * m # issue 1threshold = math.cos(math.pi - m)cos_t = tf.matmul(embeddings, tf.transpose(embeddings))batch_size = tf.shape(embeddings)[0]labels = tf.reshape(labels, [batch_size, 1])labels = tf.cast(labels, dtype=tf.int32)indices = tf.reshape(tf.range(0, batch_size), [batch_size, 1])indices = tf.cast(indices, dtype=tf.int32)concated = tf.concat([indices, labels], axis=1)one_hot = tf.sparse_to_dense(concated, [batch_size, out_num], 1.0, 0.0)one_hot = tf.cast(one_hot, dtype=tf.float32)cosine = cos_t * one_hotsine = tf.sqrt(1.0 - tf.square(cosine))phi = cos_t * cos_m - sine * sin_m # issue 2phi = tf.where(cos_t > threshold, phi, cos_t - sin_m * mm)output = (phi * one_hot + (cosine - phi * one_hot) * s) # issue 3return outputdef test_arcface_loss():embeddings = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]])labels = tf.constant([0, 1, 2])out_num = 3s = 64.0m = 0.5expected_output = tf.constant([[64.0, -32.0, -32.0], [-32.0, 64.0, -32.0], [-32.0, -32.0, 64.0]])assert tf.reduce_all(tf.equal(arcface_loss(embeddings, labels, out_num, s, m), expected_output))

能回答已知的的科学问题

提升pip下载速度,Cursor会建议用tsinghua源

pip install opencv-contrib-python==4.5.5.64--index-url https://pypi.tuna./simple

如HSL、HSV 中 S L V的区别

HSL颜色空间中的L分量表示颜色的亮度,是从黑色到白色的连续变化

HSV颜色空间中的V分量表示颜色的明度,是从黑色到最鲜艳的颜色的连续变化

HSV颜色空间中的S分量表示颜色的纯度,是颜色中白色成分的比例

HSL颜色空间中的S分量表示颜色的饱和度,是颜色中灰色成分的比例

实现 L分量代码

double calculateL(double r, double g, double b) {double maxVal = std::max({r, g, b});double minVal = std::min({r, g, b});double l = (maxVal + minVal) / 2.0;return l;}

C++重写(override)、复写(overwrite)、重载(overload)区别

重写(override)是指派生类中重新定义基类中已有的虚函数,使得派生类对象调用该虚函数时,调用的是派生类中的函数。重写的函数必须与基类中的虚函数有相同的函数名、参数列表和返回类型。在派生类中,可以使用override关键字显式地声明一个函数是重写基类中的虚函数。

复写(overwrite)是指在派生类中定义一个与基类中同名的非虚函数,从而覆盖了基类中的同名函数。复写的函数必须与基类中的函数有相同的函数名和参数列表,但可以有不同的返回类型。复写不需要使用关键字。

重载(overload)是指在同一个作用域中定义多个同名函数,但它们的参数列表不同。重载的函数必须与其他同名函数有不同的参数列表,可以有不同的返回类型。重载不需要使用关键字。

代码有Bug直接问它,可以协助找到Bug。

帮我找到了如下C++代码bug,该Bug 不会标红,难发现。

double srcMean = 0.0, double tarMean = 0.0;

Cursor 告诉我多写了个 double,应改为

double srcMean = 0.0, tarMean = 0.0;

对代码功能不理解,直接问它。

Latex代码问题也可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。