MATLAB: ne puis-je pas utiliser imcrop à partir d’un exécutable déployé

Salut à tous, j’ai rencontré des ennuis et je n’arrive pas à trouver de solution. Je déploie un exécutable simple qui affiche une figure, affiche une image et appelle imcrop pour recadrer l’image et renvoie les propriétés du rectangle. Le problème est que lorsque le programme a été déployé, l’invite de commande renvoie une erreur indiquant qu’imcrop est une fonction non définie pour un type d’entrée double. Mais je sais que je peux y placer des doubles, des simples et des int8 comme je le fais dans l’environnement Matlab tout le temps. J’ai essayé cela en 2015a et 2014a sur les versions 32 bits de Matlabs. Il n’y a aucun message dans le journal des fichiers exclus me disant que imcrop a été ignoré et d’après ce que j’ai lu, Matlab Compiler 6.0 peut déployer imcrop et d’autres outils interactifs modulaires. Qu’est-ce que je fais mal?

Meilleure réponse

  • Vérifiez le fichier mccexcluded et voyez s’il y figure. Je doute que ce le soit. Mettez cette ligne avant d’appeler imcrop
     

    which imcrop

     

  • MATLAB: Comment lire et stocker une image en niveaux de gris dans une matrice unique

    j’ai 2429 images au format pgm. chacun est en taille 19 * 19. Maintenant, je dois lire toutes les images une par une et les stocker dans une seule matrice. Avec l’aide des précédents exemples disponibles de mathworks, j’ai lu mon fichier. maintenant comment stocker dans une seule matrice.
     
    myFolder = 'C:\Users\smanohar\Documents\MATLAB\RBMimplementation\Gaussian RBM\gdrbm\greyscsalegdrbm\face';
    if ~isdir(myFolder)
    errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
    uiwait(warndlg(errorMessage));
    return;
    end
    filePattern = fullfile(myFolder, '*.pgm');
    jpegFiles = dir(filePattern);
    for k = 1:length(jpegFiles)
    baseFileName = jpegFiles(k).name;
    fullFileName = fullfile(myFolder, baseFileName);
    fprintf(1, 'Now reading %s\n', fullFileName);
    imageArray = imread(fullFileName);
    end
     

    Meilleure réponse

  • Subha – si toutes les images sont de la même dimension, 19×19, vous pouvez toutes les enregistrer dans un seul tableau de taille 19x19x2429. Essayez quelque chose comme le suivant
     

    % pre-size the image array
    imageArray = zeros(19,19,2429);
    filePattern = fullfile(myFolder, '*.pgm');
    pgmFiles = dir(filePattern);
    for k = 1:length(pgmFiles)
    baseFileName = pgmFiles(k).name;
    fullFileName = fullfile(myFolder, baseFileName);
    fprintf(1, 'Now reading %s\n', fullFileName);
    imageArray(:,:,k) = imread(fullFileName);
    end

     

  • MATLAB: Comment utiliser l’opérateur relationnel pour l’analyse d’images? par exemple, j’ai deux images..la première image a un centroïde [x = 241 y = 65] et la deuxième image [x = 246 y = 92] ..

    alors comment puis-je décrire l’image1 est inférieure à l’image2?

    Meilleure réponse

  • You can do things like image1<image2, which will produce a binary image where it’s true if image1 is less than image2 and false (black) otherwise. In addition, you can do things like xCentroid1 < xCentroid2 or yCentroid1 > yCentroid2 or whatever you want. You can even use atand2() to find out where centroid 1 is with respect to centroid 2. You need to be more specific about what you want if you want a precise answer.
  • MATLAB: Sir im faisant un programme simple pour identifier la valeur des pixels et comparer avec une autre image,

    lorsque j’exécute ce code, j’obtiens cette erreur.
     
    "Index exceeds matrix dimensions.
    Error in myfu1n (line 10)
    subblock = I(r:r+7, c:c+7);"
     
    mon code complet
     
    clc;
    clear all;
    close all;
    I = rgb2gray(imread('tablet.jpg'));
    original = rgb2gray(imread('tablet1.jpg'));
    original = double(original);
    for( j = 0 : 1:7)
    r = randi(225-7);
    c = randi(225-7);
    subblock = I(r:r+7, c:c+7);
    imshow(subblock);
    figure;
    t = [1 1];
    [s fval] = fminunc(@myfun , subblock)
    end
    y=myfun(I)
     
    fonction séparée
     
    %%myfun(I)
    function f = myfun(x)
    scale = 0.7;
    J = imresize(x, scale);
    theta = 30;
    x0 = imrotate(J,theta);
    for( i = 1:1:225)
    f = (x^2 - x0(i)^2);
    end
     

    Meilleure réponse

  • vani – êtes-vous sûr que votre image est de 225×225? Plutôt que de coder en dur les dimensions, utilisez Taillepour déterminer le nombre de lignes et de colonnes
     

    numRows = size(I,1);
    numCols = size(I,2);
    for( j = 0 : 1:7)
    r = randi(numRows - 7)
    c = randi(numCols - 7);
    subblock = I(r:r+7, c:c+7, 1);
    % etc.
    end

     

  • MATLAB: Hii monsieur, son erreur s’affiche comme argument d’entrée de type? s’il vous plaît aidez-moi

    http://www.mathworks.com/matlabcentral/fileexchange/8214-gray-image-to-color-image-conversion

    Meilleure réponse

  • Non. Vous avez une question active à ce sujet, à laquelle vous ne répondez pas. Nous refusons de deviner quoi pourraitcontinue: vous devez répondre aux questions.
    http://uk.mathworks.com/matlabcentral/answers/265920-hi-sir-in-this-matlab-code-the-gray-image-is-not-converting-into-color-image-showing-error- au 10e
    Et arrêtez de poster de nouvelles questions sur le même sujet. Voulez-vous que je passe mon temps à répondre à vos questions, ou voulez-vous que je passe mon temps à nettoyer vos doublons?
  • MATLAB: comment supprimer l’arrière-plan d’une image à l’aide de matlab

    Comment puis-je supprimer l’arrière-plan d’une image en utilisant matlab? Existe-t-il une fonction ou un fichier m spécifique ou utile? Si quelqu’un a besoin d’aide, comment supprimer l’arrière-plan d’une image en utilisant matlab? Existe-t-il une fonction ou un fichier m spécifique ou utile? Si quelqu’un a besoin de m’aider?

    Meilleure réponse

  • Processus binaire:
  • MATLAB: Monsieur, comment puis-je enregistrer la sortie vidéo de suivi humain et jouer plus tard

    j’ai atteint la sortie pour la détection humaine dans une entrée vidéo, maintenant je veux l’enregistrer et la jouer plus tard… s’il vous plaît aidez-moi

    Meilleure réponse

  • Vous pouvez utiliser imwrite () pour écrire une image à la fois dans un fichier, ou vous pouvez utiliser VideoWriterpour écrire dans un fichier vidéo.
  • MATLAB: taille et résolution à partir d’une image enregistrée sous forme de fichier au format graphique

    J’ai le code suivant pour enregistrer un tracé dans un fichier au format graphique. Mon problème est avec l’image obtenue. Si j’enregistre l’image en tant qu’image bmp ou sous les autres formats (par exemple, image jpeg), l’apparence est différente (résolution et taille). Je voudrais savoir comment résoudre ce problème.
     

    X = 0:pi/100:2*pi;
    Y = sin(X);
    fh = figure('toolbar','none','menubar','none');
    Pan1 = uipanel(fh,'Units','normalized','Position',[0 0 0.5 1],'title',...
    'Panel1');
    Pan2 = uipanel(fh,'Units','normalized','Position',[0.5 0 0.5 1],'title',...
    'Panel2');
    haxes = axes('Parent',Pan2,'Units', 'normalized','Position',...
    [0.125 0.1 0.75 0.75]);
    hplot = plot(haxes,X,Y);
    xlabel(haxes,'Time (second)');
    ylabel(haxes,'Amplitude (meter)');
    title(haxes,'Sine function');
    FileName = uiputfile('*.bmp;*.png;*.jpg;*.tif','Save as');
    ftmp = figure('Menu','none','Toolbar','none','Units','normalized',...
    'Position',[-1000 -1000 1 1]);
    new_axes = copyobj(haxes, ftmp);
    set(new_axes,'Units','normalized','Position',[0.1 0.1 0.8 0.8]);
    saveas(ftmp, FileName);
    delete(ftmp);
    delete(fh);