小编Jam*_*ame的帖子

如何将vector <unsigned char>写入file,后跟unsigned int

我必须分组5个unsigned char向量(data_length=5).在组的末尾,我想添加一个ID组并将它们(组数据+其ID)写入文件.在哪种组ID类型integer.我按照以下代码执行该任务.这是对的吗?吼叫图显示了我正在采取的措施

在此输入图像描述

#define random(x) (rand()%x)
std::ofstream filewrite("abc.raw", std::ios::out | std::ofstream::binary);
unsigned int iter = 0;
unsigned int data_length=5;
unsigned int ID_data=0;
//-------------Write data-------------//
while (iter<10){
    vector<unsigned char> vec_data;
    for (unsigned int i=0;i<data_length;i++){
        vec_data.push_back(random(256))
    }           
    std::copy(vec_data.begin(), vec_data.end(), std::ostreambuf_iterator<char>(filewrite));
    //Write ID_data after vec_data
    filewrite.write(reinterpret_cast<const char *>(&ID_data), sizeof(ID_data));
    ID_data++;
    iter++;
}
filewrite.close();
Run Code Online (Sandbox Code Playgroud)

另外,我想在没有组ID的情况下将数据提取到vector.这是我从上述文件中提取数据的代码,但它不会删除ID组.你能帮我把它删除吗?

//-------------Read data-------------//
std::ifstream file("abc.raw", std::ios::binary);
// Stop eating new lines in binary mode!!!
file.unsetf(std::ios::skipws);

// get its size:
std::streampos fileSize;

file.seekg(0, std::ios::end);
fileSize = …
Run Code Online (Sandbox Code Playgroud)

c++ file visual-studio-2013

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

如何在Android服务中检测MotionEvent.ACTION_DOWN

我正在运行后台服务来检测Android 5.0中的MotionEvent.ACTION_DOWN.我使用波纹管代码,它可以检测我的触摸事件,但我无法触摸其他应用程序.我该如何解决?如果你有更好的解决方案,请给我.谢谢大家.

public class TouchServiceListener extends Service implements OnTouchListener {
    private WindowManager mWindowManager;
    // linear layout will use to detect touch event
    private LinearLayout touchLayout;   

     @Override
    public void onCreate() {
        super.onCreate();
        touchLayout = new LinearLayout(this);
            // set layout width 30 px and height is equal to full screen
            LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
            touchLayout.setLayoutParams(lp);
            // set color if you want layout visible on screen
            touchLayout.setBackgroundColor(Color.CYAN);
            // set on touch listener
            touchLayout.setOnTouchListener(this);

            // fetch window manager object
            mWindowManager = (WindowManager) …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-service

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

在caffe中使用classify时出错

我在python中使用caffe进行分类.我从这里得到代码.在这里,我只使用简单的代码,如

plt.rcParams['figure.figsize'] = (10, 10)
plt.rcParams['image.interpolation'] = 'nearest'
plt.rcParams['image.cmap'] = 'gray'
mean_filename='./mean.binaryproto'
proto_data = open(mean_filename, "rb").read()
a = caffe.io.caffe_pb2.BlobProto.FromString(proto_data)
mean = caffe.io.blobproto_to_array(a)[0]
age_net_pretrained='./age_net.caffemodel'
age_net_model_file='./deploy_age.prototxt'
age_net = caffe.Classifier(age_net_model_file, age_net_pretrained,
mean=mean,
channel_swap=(2,1,0),
raw_scale=255,
image_dims=(256, 256))
Run Code Online (Sandbox Code Playgroud)

但是,我得到了错误

Traceback (most recent call last):
File "cnn_age_gender_demo.py", line 25, in 
image_dims=(256, 256))
File "/home/john/Downloads/caffe/python/caffe/classifier.py", line 34, in init
self.transformer.set_mean(in_, mean)
File "/home/john/Downloads/caffe/python/caffe/io.py", line 255, in set_mean
raise ValueError('Mean shape incompatible with input shape.')
ValueError: Mean shape incompatible with input shape.
Run Code Online (Sandbox Code Playgroud)

你能帮我修一下吗?谢谢

python python-2.7 caffe

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

为什么`ACTION_GATT_DISCONNECTED`确实花了这么多时间来更新状态?

我正在使用蓝牙低功耗连接我的星系S4.连接后,将在该功能中更新连接状态

private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        String intentAction;
        if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
            Log.d(TAG,"Connected");                

        } else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) {
            Log.d(TAG,"Disconnected");                
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

其中,状态来自

// Implements callback methods for GATT events that the app cares about.  For example,
    // connection change and services discovered.
    private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
        @Override
        public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
            String intentAction;
            if (newState …
Run Code Online (Sandbox Code Playgroud)

android bluetooth-lowenergy

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

扫描NFC标签时是否可以启动应用程序?

我有一个NFC标签.我想写一个自动启动的Android应用程序,当用手机扫描NFC标签时从NFC获取数据.

假设设备已打开NFC并且手机上没有其他应用程序运行,则应该可以正常工作.我找到了一些可以启动另一个应用程序的应用程序,但是我的应用程序应该在没有在后台运行的其他应用程序的情

有什么方法可以解决这个问题吗?

tags android nfc intentfilter android-intent

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

渐变和渐变之间有什么区别?

我想计算图像的渐变I.我有两种选择

[Gx, Gy] = gradient(I);
g = sqrt(Gx.^2+Gy.^2);
Run Code Online (Sandbox Code Playgroud)

[g,~] = imgradient(I, 'sobel');
Run Code Online (Sandbox Code Playgroud)

我的问题是

  1. 在第一个选项中使用的梯度法是什么?

  2. 使用sobel方法找到梯度的原因是什么?

谢谢大家

这是我试过的

I=zeros([128 128]);
I(50:100,50:100)=100;
[Gx, Gy] = gradient(I);
g1 = sqrt(Gx.^2+Gy.^2);
[g2,~] = imgradient(I, 'sobel');
subplot(121);imshow(g1,[]);title('First option')
subplot(122);imshow(g2,[]);title('Second option')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当图像添加噪声时,不同的将更清晰

I=zeros([128 128]);
I(50:100,50:100)=100;
%% Add noise image;
noiseStd=5;
I_noise = I + (noiseStd * randn([128, 128]));
[Gx, Gy] = gradient(I_noise);
g1 = sqrt(Gx.^2+Gy.^2);
[g2,~] = imgradient(I_noise, 'sobel');
subplot(121);imshow(g1,[]);title('First option')
subplot(122);imshow(g2,[]);title('Second option')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

作为可视化,第二个选项提供了更多的亮度值

algorithm matlab image-processing computer-vision

5
推荐指数
2
解决办法
896
查看次数

是否可以减少在 Android 中显示的通知时间?

我正在使用波纹管代码在我的 Android 手机上显示通知。我想减少用于显示通知的时间。现在,它花费大约 2 秒的时间来显示,然后它被隐藏。我想将时间从 2 秒减少到 1 秒。是否可以?

Notification notification = new NotificationCompat.Builder(context)
                    .setContentTitle(context.getString(R.string.app_name))
                    .setContentText("Notification")
                    .setAutoCancel(false)
                    .setPriority(Notification.PRIORITY_MAX)
                    .setSmallIcon(R.mipmap.ic_launcher)
                    .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
                    .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
                    .build();

NotificationManager notificationManager = getNotificationManager(context);
notificationManager.notify(SAFER_DISCONNECTED_NOTIFICATION_ID, notification);
Run Code Online (Sandbox Code Playgroud)

android android-notifications android-notification-bar

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

matlab中的二进制三维模糊矩阵

我有一个模糊矩阵M,大小是3x3x3这样的

M(:,:,1)+M(:,:,2)+M(:,:,3)=matrix one %all elements is one
0<=M(:,:,i)<=1; i=1..3
Run Code Online (Sandbox Code Playgroud)

我想将矩阵M转换为二进制矩阵

if (M(p,q,i)>=M(p,q,j)) then M(p,q,i)=1, M(p,q,j)=0
Run Code Online (Sandbox Code Playgroud)

其中p,q是元素的位置.I,J = 1..3

注意,如果我们已经设置 M(p,q,i)=1那么M(p,q,j)必须是0(j = 1..3,j!= i)因为我想要二进制矩阵M的和仍然等于1(sum(M,3)= ones(3,3))

你能帮我在matlab中表达这个想法吗?非常感谢

例如:

M=zeros([3 3 3]);
M(:,:,1) =  [0.2000    0.3000    0.4000;
             0.5000    0.6000    0.7000;
             0.3000    0.2000    0.1000];


M(:,:,2) =  [0.4000    0.1000    0.6000;
             0.1000    0.3000    0.1000;
             0.1000    0.2000    0.1000];


M(:,:,3) =  [0.4000    0.6000         0;
             0.4000    0.1000    0.2000;
             0.6000    0.6000    0.8000];
Run Code Online (Sandbox Code Playgroud)

我的预期产量是

M_out(:,:,1)=[0        0         0;
              1        1         1
              0        0         0];

M_out(:,:,2)=[1 …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab matrix

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

我们需要在Android 6.0中的运行时获得哪些权限

我有一个可以在Android 5.0版本上正常运行的android代码。我的AndroidManifest.xml

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)

但是,我的使用Android 6.0(LG G5)的客户报告该应用程序无法正常运行。我没有LG G5来检查问题所在。我认为原因是权限从5.0更改为6.0。您能否看一下我的许可,并请我为Android 6.0进行一些改进/更正?还是我们有任何方法可以自动为Android 6.0添加权限。谢谢大家

android audio-recording android-permissions android-6.0-marshmallow

4
推荐指数
2
解决办法
3329
查看次数

如何从二值图像中分离细胞

我有细胞的二值图像。我想使用 python 来单独分离这些单元格。每个单元格将保存在图像中。例如,我有 1000 个单元格,那么输出将是 1000 个图像,每个图像包含 1 个单元格。目前我使用两种方式获取但是输出都是错误的

from skimage.morphology import watershed
from skimage.feature import peak_local_max
from skimage import morphology
import numpy as np
import cv2
from scipy import ndimage
from skimage import segmentation

image=cv2.imread('/home/toanhoi/Downloads/nuclei/9261_500_f00020_mask.png',0)
image=image[300:600,600:900]
# First way: peak_local_max
distance = ndimage.distance_transform_edt(image)
local_maxi = peak_local_max(distance, indices=False, footprint=np.ones((3, 3)), labels=image)
markers = morphology.label(local_maxi)
labels_ws = watershed(-distance, markers, mask=image)
markers[~image] = -1
labels_rw = segmentation.random_walker(image, markers)
cv2.imshow('watershed',labels_rw)
cv2.waitKey(5000)
# Second way way: using contour
_,contours,heirarchy=cv2.findContours(image,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(image,contours,-1,(125,125,0),1)

cv2.imshow('contours',image)
cv2.waitKey(5000)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

opencv image-processing python-3.x scikit-image

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