Month: July 2024
Faster R-CNN layer error
I have been at it for awhile but cannot figure it out, and I have also gotten lost in documentation for a few days now. I am attemping to train a Faster R-CNN model with a pretrained ResNet backbone. So far I have found documentation stating not to use lgraph and to use dlnetwork instead, so I attemtped it that way also and got the same error. More documentation stated not to use net=resnet50 either, and to use [net,classNames] = imagePretrainedNetwork instead. The issue is that I cannot figure out how to fit all of these pieces together. The dataset can be found here and downlaoded for free: https://www.flir.com/oem/adas/adas-dataset-form/
When the model attempts to run, it appears that it detects only 3 classes. I also used analyzeNetwork and network designer to look at the layers and it appears that the boxdeltas and R-CNN classification layers have the correct number of outputs. Any help is greatly appreciated!!
Here is the code so far (some parts generated by chatgpt and others taken from official documentation), but I have several versions of this with slight variations:
%% Define the custom read function
function imgOut = ensureRGB(imgIn)
[~, ~, numChannels] = size(imgIn);
if numChannels == 1
imgOut = repmat(imgIn, [1 1 3]);
else
imgOut = imgIn;
end
end
%% Define the paths
imageFolder = "C:UsersUserDesktopFLIR_Thermal_DatasetFLIR_ADAS_v2images_thermal_train";
annotationFolder = "C:UsersUserDocumentsMATLABtrainingData.mat";
matFile = "C:UsersUserDocumentsMATLABtrainingData.mat"; % MATLAB format annotations(there is a function to convert the original data into this .mat file if anyone needs it)
%% Load the training data from the MAT-file
load(matFile, ‘trainingData’);
% Shuffle the training data
rng(0);
shuffledIdx = randperm(height(trainingData));
trainingData = trainingData(shuffledIdx,:);
%% Create image datastore with custom read function and specify file extensions
imds = imageDatastore(trainingData.imageFilename, …
‘ReadFcn’, @(filename) ensureRGB(imread(filename)), …
‘FileExtensions’, {‘.jpg’, ‘.jpeg’, ‘.png’, ‘.bmp’});
%% Create box label datastore
blds = boxLabelDatastore(trainingData(:, {‘bbox’, ‘label’}));
%% Combine the datastores
ds = combine(imds, blds);
%% Verify with a sample image
sampleImg = readimage(imds, 1);
[height, width, numChannels] = size(sampleImg);
disp([‘Sample Image Number of Channels: ‘, num2str(numChannels)]);
%% Define number of classes
numClasses = 16;
%% Define input image size and anchor boxes
inputImageSize = [512 640 3];
anchorBoxes = [32 32; 64 64; 128 128];
%% Load the ResNet-50 network
lgraph = layerGraph(resnet50);
% Specify the feature extraction layer
featureLayer = ‘activation_40_relu’;
% Create Faster R-CNN layers
dlnetwork = fasterRCNNLayers(inputImageSize, numClasses, anchorBoxes, lgraph, featureLayer);
%% Analyze the network to ensure all layers are correct
analyzeNetwork(dlnetwork);
%% Define training options
options = trainingOptions(‘sgdm’, …
‘MiniBatchSize’, 16, …
‘InitialLearnRate’, 1e-4, …
‘MaxEpochs’, 10, …
‘Verbose’, true, …
‘Shuffle’, ‘every-epoch’, …
‘Plots’, ‘training-progress’);
% Train the network
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
ERROR:
Training a Faster R-CNN Object Detector for the following object classes:
* car
* light
* person
Error using trainFasterRCNNObjectDetector (line 33)
Invalid network.
Error in
untitled (line 74)
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
Caused by:
Layer ‘boxDeltas’: The input size must be 1×1×12. This R-CNN box regression layer expects the third input dimension to be 4 times the number of object classes
the network should detect (3 classes). See the
documentation for more details about creating Fast or Faster R-CNN networks.
Layer ‘rcnnClassification’: The input size must be 1×1×4. The classification layer expects the third input dimension to be the number of object classes the
network should detect (3 classes) plus 1. The additional class is required for the "background" class. See the
documentation for more details about creating
Fast or Faster R-CNN networks.
So far I have tried:
1) using dlnetwork instead of lgraph
2) using [net,classNames] = imagePretrainedNetwork instead of net=resnet50
3) manually changing the layers in the designer
4) changing the channels from 1 to 3. (when loaded into my python environment the images had three channels, in MATLAB they showed 1)
5) resizing the imagesI have been at it for awhile but cannot figure it out, and I have also gotten lost in documentation for a few days now. I am attemping to train a Faster R-CNN model with a pretrained ResNet backbone. So far I have found documentation stating not to use lgraph and to use dlnetwork instead, so I attemtped it that way also and got the same error. More documentation stated not to use net=resnet50 either, and to use [net,classNames] = imagePretrainedNetwork instead. The issue is that I cannot figure out how to fit all of these pieces together. The dataset can be found here and downlaoded for free: https://www.flir.com/oem/adas/adas-dataset-form/
When the model attempts to run, it appears that it detects only 3 classes. I also used analyzeNetwork and network designer to look at the layers and it appears that the boxdeltas and R-CNN classification layers have the correct number of outputs. Any help is greatly appreciated!!
Here is the code so far (some parts generated by chatgpt and others taken from official documentation), but I have several versions of this with slight variations:
%% Define the custom read function
function imgOut = ensureRGB(imgIn)
[~, ~, numChannels] = size(imgIn);
if numChannels == 1
imgOut = repmat(imgIn, [1 1 3]);
else
imgOut = imgIn;
end
end
%% Define the paths
imageFolder = "C:UsersUserDesktopFLIR_Thermal_DatasetFLIR_ADAS_v2images_thermal_train";
annotationFolder = "C:UsersUserDocumentsMATLABtrainingData.mat";
matFile = "C:UsersUserDocumentsMATLABtrainingData.mat"; % MATLAB format annotations(there is a function to convert the original data into this .mat file if anyone needs it)
%% Load the training data from the MAT-file
load(matFile, ‘trainingData’);
% Shuffle the training data
rng(0);
shuffledIdx = randperm(height(trainingData));
trainingData = trainingData(shuffledIdx,:);
%% Create image datastore with custom read function and specify file extensions
imds = imageDatastore(trainingData.imageFilename, …
‘ReadFcn’, @(filename) ensureRGB(imread(filename)), …
‘FileExtensions’, {‘.jpg’, ‘.jpeg’, ‘.png’, ‘.bmp’});
%% Create box label datastore
blds = boxLabelDatastore(trainingData(:, {‘bbox’, ‘label’}));
%% Combine the datastores
ds = combine(imds, blds);
%% Verify with a sample image
sampleImg = readimage(imds, 1);
[height, width, numChannels] = size(sampleImg);
disp([‘Sample Image Number of Channels: ‘, num2str(numChannels)]);
%% Define number of classes
numClasses = 16;
%% Define input image size and anchor boxes
inputImageSize = [512 640 3];
anchorBoxes = [32 32; 64 64; 128 128];
%% Load the ResNet-50 network
lgraph = layerGraph(resnet50);
% Specify the feature extraction layer
featureLayer = ‘activation_40_relu’;
% Create Faster R-CNN layers
dlnetwork = fasterRCNNLayers(inputImageSize, numClasses, anchorBoxes, lgraph, featureLayer);
%% Analyze the network to ensure all layers are correct
analyzeNetwork(dlnetwork);
%% Define training options
options = trainingOptions(‘sgdm’, …
‘MiniBatchSize’, 16, …
‘InitialLearnRate’, 1e-4, …
‘MaxEpochs’, 10, …
‘Verbose’, true, …
‘Shuffle’, ‘every-epoch’, …
‘Plots’, ‘training-progress’);
% Train the network
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
ERROR:
Training a Faster R-CNN Object Detector for the following object classes:
* car
* light
* person
Error using trainFasterRCNNObjectDetector (line 33)
Invalid network.
Error in
untitled (line 74)
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
Caused by:
Layer ‘boxDeltas’: The input size must be 1×1×12. This R-CNN box regression layer expects the third input dimension to be 4 times the number of object classes
the network should detect (3 classes). See the
documentation for more details about creating Fast or Faster R-CNN networks.
Layer ‘rcnnClassification’: The input size must be 1×1×4. The classification layer expects the third input dimension to be the number of object classes the
network should detect (3 classes) plus 1. The additional class is required for the "background" class. See the
documentation for more details about creating
Fast or Faster R-CNN networks.
So far I have tried:
1) using dlnetwork instead of lgraph
2) using [net,classNames] = imagePretrainedNetwork instead of net=resnet50
3) manually changing the layers in the designer
4) changing the channels from 1 to 3. (when loaded into my python environment the images had three channels, in MATLAB they showed 1)
5) resizing the images I have been at it for awhile but cannot figure it out, and I have also gotten lost in documentation for a few days now. I am attemping to train a Faster R-CNN model with a pretrained ResNet backbone. So far I have found documentation stating not to use lgraph and to use dlnetwork instead, so I attemtped it that way also and got the same error. More documentation stated not to use net=resnet50 either, and to use [net,classNames] = imagePretrainedNetwork instead. The issue is that I cannot figure out how to fit all of these pieces together. The dataset can be found here and downlaoded for free: https://www.flir.com/oem/adas/adas-dataset-form/
When the model attempts to run, it appears that it detects only 3 classes. I also used analyzeNetwork and network designer to look at the layers and it appears that the boxdeltas and R-CNN classification layers have the correct number of outputs. Any help is greatly appreciated!!
Here is the code so far (some parts generated by chatgpt and others taken from official documentation), but I have several versions of this with slight variations:
%% Define the custom read function
function imgOut = ensureRGB(imgIn)
[~, ~, numChannels] = size(imgIn);
if numChannels == 1
imgOut = repmat(imgIn, [1 1 3]);
else
imgOut = imgIn;
end
end
%% Define the paths
imageFolder = "C:UsersUserDesktopFLIR_Thermal_DatasetFLIR_ADAS_v2images_thermal_train";
annotationFolder = "C:UsersUserDocumentsMATLABtrainingData.mat";
matFile = "C:UsersUserDocumentsMATLABtrainingData.mat"; % MATLAB format annotations(there is a function to convert the original data into this .mat file if anyone needs it)
%% Load the training data from the MAT-file
load(matFile, ‘trainingData’);
% Shuffle the training data
rng(0);
shuffledIdx = randperm(height(trainingData));
trainingData = trainingData(shuffledIdx,:);
%% Create image datastore with custom read function and specify file extensions
imds = imageDatastore(trainingData.imageFilename, …
‘ReadFcn’, @(filename) ensureRGB(imread(filename)), …
‘FileExtensions’, {‘.jpg’, ‘.jpeg’, ‘.png’, ‘.bmp’});
%% Create box label datastore
blds = boxLabelDatastore(trainingData(:, {‘bbox’, ‘label’}));
%% Combine the datastores
ds = combine(imds, blds);
%% Verify with a sample image
sampleImg = readimage(imds, 1);
[height, width, numChannels] = size(sampleImg);
disp([‘Sample Image Number of Channels: ‘, num2str(numChannels)]);
%% Define number of classes
numClasses = 16;
%% Define input image size and anchor boxes
inputImageSize = [512 640 3];
anchorBoxes = [32 32; 64 64; 128 128];
%% Load the ResNet-50 network
lgraph = layerGraph(resnet50);
% Specify the feature extraction layer
featureLayer = ‘activation_40_relu’;
% Create Faster R-CNN layers
dlnetwork = fasterRCNNLayers(inputImageSize, numClasses, anchorBoxes, lgraph, featureLayer);
%% Analyze the network to ensure all layers are correct
analyzeNetwork(dlnetwork);
%% Define training options
options = trainingOptions(‘sgdm’, …
‘MiniBatchSize’, 16, …
‘InitialLearnRate’, 1e-4, …
‘MaxEpochs’, 10, …
‘Verbose’, true, …
‘Shuffle’, ‘every-epoch’, …
‘Plots’, ‘training-progress’);
% Train the network
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
ERROR:
Training a Faster R-CNN Object Detector for the following object classes:
* car
* light
* person
Error using trainFasterRCNNObjectDetector (line 33)
Invalid network.
Error in
untitled (line 74)
detector = trainFasterRCNNObjectDetector(ds, dlnetwork, options);
Caused by:
Layer ‘boxDeltas’: The input size must be 1×1×12. This R-CNN box regression layer expects the third input dimension to be 4 times the number of object classes
the network should detect (3 classes). See the
documentation for more details about creating Fast or Faster R-CNN networks.
Layer ‘rcnnClassification’: The input size must be 1×1×4. The classification layer expects the third input dimension to be the number of object classes the
network should detect (3 classes) plus 1. The additional class is required for the "background" class. See the
documentation for more details about creating
Fast or Faster R-CNN networks.
So far I have tried:
1) using dlnetwork instead of lgraph
2) using [net,classNames] = imagePretrainedNetwork instead of net=resnet50
3) manually changing the layers in the designer
4) changing the channels from 1 to 3. (when loaded into my python environment the images had three channels, in MATLAB they showed 1)
5) resizing the images faster r-cnn, deep learning, flir adas, resnet50 MATLAB Answers — New Questions
Icona del wifi sbagliata
Mi sta succedendo una cosa strana dopo aver scaricato gli ultimi aggiornamenti di Windows: quando accendo il mio portatile l’icona della connessione Internet è quella che appare quando sei connesso via cavo anche se sono connesso in modalità wireless. Quando accedo l’icona è quella giusta.
Mi sta succedendo una cosa strana dopo aver scaricato gli ultimi aggiornamenti di Windows: quando accendo il mio portatile l’icona della connessione Internet è quella che appare quando sei connesso via cavo anche se sono connesso in modalità wireless. Quando accedo l’icona è quella giusta. Read More
جـلب الـحبيب < الرياض☎️ 578385770 : 966 +| مـعالج و شيــخ روحـــاني سـعودي KSA
جـلب الـحبيب < الرياض:telephone: 578385770 : 966 +| مـعالج و شيــخ روحـــاني سـعودي KSA
جـلب الـحبيب < الرياض:telephone: 578385770 : 966 +| مـعالج و شيــخ روحـــاني سـعودي KSA Read More
جـلب الـحبيب < جدة☎️ 34028443 :973 +| مـعالج و شيــخ روحـــاني سـعودي KSA
جـلب الـحبيب < جدة:telephone: 34028443 :973 +| مـعالج و شيــخ روحـــاني سـعودي KSA
جـلب الـحبيب < جدة:telephone: 34028443 :973 +| مـعالج و شيــخ روحـــاني سـعودي KSA Read More
Python (preview) in excel
How do I get the result of an if statement into the cell where I’ve selected the python script to display the result?
I’ve so far used this script, it only displays in the diagnostic preview pane
a = xl(“A1”)
if a == xl(“L1”):
print(“That’s a match”)
I want to display this in cell A2
How do I get the result of an if statement into the cell where I’ve selected the python script to display the result? I’ve so far used this script, it only displays in the diagnostic preview pane a = xl(“A1”)
if a == xl(“L1”):
print(“That’s a match”) I want to display this in cell A2 Read More
how to create vector 1 1 1 1 1 1 2 2 2 2 2 2?
I wasn’t given any function or limitation on this, however I just started learning about this(part of my HB after first lesson) and I’d love if someone can show me a simple and effective way to create a vector that looks like 1 1 1 1 1 1 2 2 2 2 2 2I wasn’t given any function or limitation on this, however I just started learning about this(part of my HB after first lesson) and I’d love if someone can show me a simple and effective way to create a vector that looks like 1 1 1 1 1 1 2 2 2 2 2 2 I wasn’t given any function or limitation on this, however I just started learning about this(part of my HB after first lesson) and I’d love if someone can show me a simple and effective way to create a vector that looks like 1 1 1 1 1 1 2 2 2 2 2 2 homework, help MATLAB Answers — New Questions
Breast Density in Mammography Dicom Images
Is there a way to extract the breast density of a mammography through Matlab code?Is there a way to extract the breast density of a mammography through Matlab code? Is there a way to extract the breast density of a mammography through Matlab code? density, breast, mammography MATLAB Answers — New Questions
PLOTTING MULTIPLE Y AXES
Good afternoon,
How could I create a graph with multiple y-axes: Millitm, PIT, TIT, PD, FIT
T2022_1 = readtable(‘data.csv’, ‘VariableNamingRule’,’preserve’);
MyDateTime = T2022_1.Date + T2022_1.Time;
MyDateTime.Format = ‘yyyy-MM-dd HH:mm:ss’;
T2022_2 = [T2022_1(:,1) table(MyDateTime) T2022_1(:,[3:end])];
figure(1)
plot(T2022_2.MyDateTime, T2022_2.(‘PIT’), ‘-k’, ‘LineWidth’,1, ‘DisplayName’, ‘Pressure Separador’)
grid on
xlabel(‘Date & Time’)
ylabel(‘Pressure – Psig’)
lgd = legend;
lgd.NumColumns = 1;
for the help, thank you in advanceGood afternoon,
How could I create a graph with multiple y-axes: Millitm, PIT, TIT, PD, FIT
T2022_1 = readtable(‘data.csv’, ‘VariableNamingRule’,’preserve’);
MyDateTime = T2022_1.Date + T2022_1.Time;
MyDateTime.Format = ‘yyyy-MM-dd HH:mm:ss’;
T2022_2 = [T2022_1(:,1) table(MyDateTime) T2022_1(:,[3:end])];
figure(1)
plot(T2022_2.MyDateTime, T2022_2.(‘PIT’), ‘-k’, ‘LineWidth’,1, ‘DisplayName’, ‘Pressure Separador’)
grid on
xlabel(‘Date & Time’)
ylabel(‘Pressure – Psig’)
lgd = legend;
lgd.NumColumns = 1;
for the help, thank you in advance Good afternoon,
How could I create a graph with multiple y-axes: Millitm, PIT, TIT, PD, FIT
T2022_1 = readtable(‘data.csv’, ‘VariableNamingRule’,’preserve’);
MyDateTime = T2022_1.Date + T2022_1.Time;
MyDateTime.Format = ‘yyyy-MM-dd HH:mm:ss’;
T2022_2 = [T2022_1(:,1) table(MyDateTime) T2022_1(:,[3:end])];
figure(1)
plot(T2022_2.MyDateTime, T2022_2.(‘PIT’), ‘-k’, ‘LineWidth’,1, ‘DisplayName’, ‘Pressure Separador’)
grid on
xlabel(‘Date & Time’)
ylabel(‘Pressure – Psig’)
lgd = legend;
lgd.NumColumns = 1;
for the help, thank you in advance multiple y axes MATLAB Answers — New Questions
Matlab online cant open and return to login page after every login
My mathlab online unable to open, everytime login it will automatically return to the login pageMy mathlab online unable to open, everytime login it will automatically return to the login page My mathlab online unable to open, everytime login it will automatically return to the login page #errorinmathlabonline MATLAB Answers — New Questions
Integrating Newton Andor camera with Matlab.
Dear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regardsDear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regards Dear friends,
I am trying to integrate the Newton Andor 920 camera with MATLAB. Generally, we have ‘gentl’ adaptors for capturing the video with matlab. But here the company doesnot provide the direct adaptor to use in MATLAB.
Hence, I request to please let me know if the Newton Andor 920 camera has now a built in adaptor to use. Or if someone has found a way to use Newton Andor 920 camera with matlab. or If some has an idea to develope an adaptor in MATLAB for it then please let me know.
Thanking you,
Kind regards image acquisition, matlab, adaptor, camera MATLAB Answers — New Questions
How to calculate mean of specified row and column of multiple dataset of structure?
I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help.I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help. I’m dealing with a structure full of data, one of the data is called BEST and there are 50 of them so that is data(i).best in which i is from 1 to 50, each data(i).best contains a 10×10 table of numbers. I need to calculate mean of each row and column corresponding to each data(i).best, for example I need to sum up all of the data that are in data(i).best(5,7) (i is from 1 to 50) and devide it by 50. how am I supposed to do so? I tried using three layers of "for" and it didn’t seem to help. structures, mean, data MATLAB Answers — New Questions
Generative AI with Azure Cosmos DB
Leverage Azure Cosmos DB for generative AI workloads for automatic scalability, low latency, and global distribution to handle massive data volumes and real-time processing. With support for versatile data models and built-in vector indexing, it efficiently retrieves natural language queries, making it ideal for grounding large language models. Seamlessly integrate with Azure OpenAI Studio for API-level access to GPT models and access a comprehensive gallery of open-source tools and frameworks in Azure AI Studio to enhance your AI applications.
Automatic and horizontal scaling.
Handle massive increases in data volume and transactions. See why Azure Cosmos DB is ideal for real-time data processing and generative AI workloads.
Optimal performance and reliability.
Azure Cosmos DB allows data to be distributed globally across multiple regions, routing requests to the closest region. See it here.
Built-in vector indexing and search capabilities.
Efficient retrieval of natural language queries. Check out how Azure Cosmos DB grounds large language models with accurate and relevant data.
Watch our video here:
QUICK LINKS:
00:00 — Azure Cosmos DB for generative AI workloads
00:18 — Versatile Data Models|
00:39 — Scalability and performance
01:19 — Global distribution
01:31 — Vector indexing and search
02:07 — Grounding LLMs
02:30 — Wrap up
Unfamiliar with Microsoft Mechanics?
As Microsoft’s official video series for IT, you can watch and share valuable content and demos of current and upcoming tech from the people who build it at Microsoft.
Subscribe to our YouTube: https://www.youtube.com/c/MicrosoftMechanicsSeries
Talk with other IT Pros, join us on the Microsoft Tech Community: https://techcommunity.microsoft.com/t5/microsoft-mechanics-blog/bg-p/MicrosoftMechanicsBlog
Watch or listen from anywhere, subscribe to our podcast: https://microsoftmechanics.libsyn.com/podcast
Keep getting this insider knowledge, join us on social:
Follow us on Twitter: https://twitter.com/MSFTMechanics
Share knowledge on LinkedIn: https://www.linkedin.com/company/microsoft-mechanics/
Enjoy us on Instagram: https://www.instagram.com/msftmechanics/
Loosen up with us on TikTok: https://www.tiktok.com/@msftmechanics
Video Transcript:
-The right database plays a critical role in the speed and the scale of data retrieval for the grounding of large language models to efficiently return more accurate responses. Let’s break down the characteristics of Azure Cosmos DB and what makes it suited for generative AI workloads.
-Did you know the ChatGPT service itself, with its hundreds of millions of users globally, uses Azure Cosmos DB for the automatic indexing and storing of user conversation history?
-Importantly, it’s capable of working with any data with support for multiple data models, such as the document model for representing conversational data, which is the case for ChatGPT. And as your volume of data grows, Azure Cosmos DB will automatically and horizontally scale physical partitions of dedicated compute and storage as needed.
-This limitless and automatic scale makes it ideal for real-time data processing. For example, in November 2023, when OpenAI announced several new capabilities, the transactions jumped from 4.7 billion to 10.6 billion transactions almost overnight. And Azure Cosmos DB automatically scaled to meet this exponential demand, so it’s ideal for real-time transactional workloads.
-And with its low latency, single-digit millisecond response times, it’s fast. Additionally, you can choose to distribute data globally across multiple regions around the world, so as requests come in, they get routed to the closest available region to your users and operations. Then, to efficiently retrieve natural language queries, the vCore-based Azure Cosmos DB for MongoDB has vector indexing and vector search built into the database.
-Vectors are calculated as data is ingested into Azure Cosmos DB. These are a coordinate-like way to refer to chunks of data in your database that are used later for similarity lookups. In the case of generative AI, when a user submits their prompt, that too is converted to a vector embedding, and the lookup finds the closest matches for the prompts vectors to those in the database, making responses more efficient and accurate.
-Grounding large language models with vector index data in Azure Cosmos DB is easy. In environments like Azure OpenAI Studio, just select Azure Cosmos DB as your data source. This gives you API-level access to the GPT models in the Azure OpenAI service. And with Azure AI Studio, you have access to a huge gallery of open-source models, tools, and frameworks.
-In fact, as part of a secure AI architecture, Azure Cosmos DB is recommended as you build your enterprise generative AI apps to store and maintain chat session history. It’s these reasons and more that make Azure Cosmos DB uniquely and well suited for your generative AI apps and workloads.
Microsoft Tech Community – Latest Blogs –Read More
When will the transition from Java to Javascript be complete?
It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release.It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release. It’s been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release. graphics, java, javascript MATLAB Answers — New Questions
Integral2 MATLAB Function Error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
Hello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.mHello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.m Hello,
I am facing an error with the "integral 2" function in MATLAB.
This is the integral I am trying to perform in MATLAB.
See screenshot attached:
Integration_MATLAB.png
Essentially, I made my integration variables "z" and "z_prime" symbolic variables in MATLAB.
This is so that I can use them throughout my analytical process of creating the equation "K".
The equation "K" is a function of "z" and "z_prime".
After I calculate K, I specify my integration boundaries for "z" and "z_prime". Then I "convert" to a "MATLAB Function"
For some reason, I keep getting the error: Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
I’ve tried looking up this error up for other cases on the MathWorks forum. I wasn’t able to find something that was relevant to my case.
I’ve tried using the "trapz" integration function in MATLAB but I wasn’t able to get anywhere with that either.
I have attached my code for reference
See code attached:
Using_Integral_2_Function.m integral2, integral, integration, symbolic variables, symbolic toolbox, syms, integral2calc MATLAB Answers — New Questions
Disorganization of Application Components When Using Internal HTML Links Loaded in the HTML Component of MATLAB App Designer
Hello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the LinkHello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the Link Hello everyone,
I am experiencing an issue with the HTML file that I am loading into the HTML component of my application in MATLAB App Designer. When I click on the summary links or the return links that navigate to sections within the same file, the other components on the screen become disorganized.
Could someone assist me in resolving this issue? Please find the HTML code and images attached below. The images show the correct screen before clicking the link and how the application screen looks after the link is clicked.
Thank you in advance for your help!
Best regards,
Airton Gaio Junior
HTML Code
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<title>Manual de Uso da Aplicação: Segmentação de Palmeiras</title>
<style>
body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 0;
background-color: #f4f4f9;
overflow-x: hidden; /* Evita a rolagem horizontal */
}
header {
background-color: #4CAF50;
color: white;
padding: 1rem 0;
text-align: center;
}
.container {
width: 100%; /* Ajusta a largura ao container pai */
/*max-width: none; /* Remove o limite de largura */
max-width: 900px;
margin: 20px auto;
padding: 20px;
background: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: #333;
}
ul {
list-style-type: none;
padding: 0;
}
ul li {
padding: 5px 0;
}
ul li a {
text-decoration: none;
color: #4CAF50;
}
ul li a:hover {
text-decoration: underline;
}
.center {
text-align: center;
}
img {
max-width: 100%;
height: auto;
display: block;
margin: 20px auto;
}
p {
color: #555;
}
.btn-back {
display: inline-block;
margin: 20px 0;
padding: 10px 15px;
background-color: #4CAF50;
color: white;
text-decoration: none;
border-radius: 5px;
}
.btn-back:hover {
background-color: #45a049;
}
.important {
background-color: #ffcccc;
border-left: 6px solid #ff0000;
padding: 10px;
margin: 20px 0;
border-radius: 4px;
}
</style>
</head>
<body>
<header>
<h2>Manual de Uso da Aplicação: Segmentação de Palmeiras</h2>
</header>
<div class="container">
<h2 id="sumario">Sumário</h2>
<ul>
<li><a href="#introducao">Introdução</a></li>
<li><a href="#prerequisitos">Pré-requisitos</a></li>
<li><a href="#instalacao">Instalação no Windows</a></li>
<li><a href="#iniciar">Iniciar a Aplicação</a></li>
<li><a href="#carregar">Carregar Imagem</a></li>
<li><a href="#processar">Processar Segmentação</a></li>
<li><a href="#histograma">Gerar Histograma</a></li>
<li><a href="#exportar">Exportar Segmentação</a></li>
<li><a href="#resolucao-problemas">Resolução de Problemas</a></li>
<li><a href="#faq">Perguntas Frequentes (FAQ)</a></li>
<li><a href="#atualizacoes">Atualizações e Manutenção</a></li>
<li><a href="#seguranca-backup">Segurança e Backup</a></li>
<li><a href="#glossario">Glossário</a></li>
<li>Copyright e Contato do Suporte
<ul>
<li><a href="#copyright">Copyright</a></li>
<li><a href="#licenca">Licença de Uso</a></li>
<li><a href="#consideracoes">Considerações Finais</a></li>
<li><a href="#autores">Autor(es)</a></li>
</ul>
</li>
</ul>
<h2 id="introducao">Introdução</h2>
<p>Esta aplicação MATLAB foi desenvolvida para segmentar espécies de palmeiras em imagens georreferenciadas. O objetivo principal
é fornecer uma ferramenta fácil de usar para pesquisadores e especialistas em meio ambiente para analisar imagens de VANT
(Veículo Aéreo Não Tripulado) e obter informações sobre a distribuição de diferentes espécies de palmeiras.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="prerequisitos">Pré-requisitos</h2>
<p>Para utilizar esta aplicação, é necessário:</p>
<ul>
<li>MATLAB R2021a ou superior</li>
<li>Toolbox de Processamento de Imagem do MATLAB</li>
<li>Bibliotecas adicionais: [Listar bibliotecas]</li>
</ul>
<p>Recomenda-se um computador com as seguintes especificações:</p>
<ul>
<li>Processador Intel Core i5 ou superior</li>
<li>8GB de RAM (16GB recomendado)</li>
<li>Placa gráfica dedicada com suporte a CUDA (opcional, mas recomendado para processamento mais rápido)</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="instalacao">Instalação no Windows</h2>
<p>[Instruções de instalação aqui]</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="iniciar">Iniciar a Aplicação</h2>
<p>Abra a aplicação MATLAB e execute o script da aplicação para abrir a janela principal.</p>
<img src="img_doc/image002.png" alt="Tela Principal da aplicação">
<p class="center">Figura 1 – Tela Principal da aplicação.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="carregar">Carregar Imagem</h2>
<p>1. Clique no botão ‘Carregar Imagem…’.</p>
<p>2. Na janela de diálogo, selecione uma imagem no formato TIF.</p>
<p>3. Aguarde a imagem ser carregada e exibida na aba IMAGEM. As informações da imagem serão preenchidas no painel esquerdo.</p>
<img src="img_doc/image004.png" alt="Imagem carregada na aba “IMAGEM”">
<p class="center">Figura 2 – Imagem carregada na aba “IMAGEM”.</p>
<p>A rede neural convolucional deste projeto foi treinada com imagens capturadas por um VANT (Veículo Aéreo Não Tripulado) a uma
altura fixa de 120 metros acima do dossel, alcançando uma resolução espacial de 4,3 cm/<i>pixel</i>. As imagens foram coletadas
em uma área de floresta tropical com palmeiras. O resultado da aplicação é uma imagem classificada em sete classes, definidas
da seguinte maneira: 1) Açaí (<span style="background: yellow;">Euterpe oleracea</span>); 2) Cocão
(<i><span style="background: yellow;">Maximiliana maripa</span></i>); 3) Jaci
(<i><span style="background: yellow;">Attalea maripa</span></i>); 4) Paxiuba (<span
style="background: yellow;"><i>Socratea</i></span><i><span style="background: yellow;"> exorrhiza</span></i>);
5) Tucumã (<span style="background: yellow;"><i>Astrocaryum</i></span><i><span
style="background: yellow;"> aculeatum</span></i>); 6) Floresta sem Palmeiras
(<i>background</i>); e 7) Sem dados (<i>no-data</i>).</p>
<p>Para obter os melhores resultados, recomenda-se que a imagem de entrada tenha características semelhantes às descritas. No
entanto, a aplicação pode lidar com imagens que variem ligeiramente em resolução espacial, tipo de floresta e espécies presentes.</p>
<p>A aplicação aceita imagens de entrada com apenas três bandas. Se o usuário carregar uma imagem com mais de três bandas,
a aplicação considerará automaticamente apenas as três primeiras.</p>
<p class="important"><strong>IMPORTANTE:</strong> Recomendamos não utilizar imagens muito grandes, pois limitações
de hardware, como falta de memória RAM, espaço em disco, processadores mais lentos e a ausência de uma GPU dedicada,
podem impactar o desempenho da aplicação, resultando em tempos de processamento mais longos ou até mesmo no travamento do
sistema. Para áreas muito grandes, sugere-se dividir a imagem em partes menores para facilitar o processamento. A imagem de
entrada deve ter um tamanho mínimo de 2048<i>x</i>2048 <i>pixels</i>, conforme definido para o processamento em bloco.</p>
<p>A aba "IMAGEM" oferece diversos recursos ao usuário após o carregamento de uma imagem.</p>
<img src="img_doc/image006.png" alt="Menu de opções para a imagem carregada" style="width: 25%;">
<p class="center">Figura 3 – Menu de opções para a imagem carregada.</p>
<p>Ao passar o mouse sobre a imagem carregada, um menu de opções localizado no canto superior direito da imagem (Figura XX) será exibido. Este menu permite as seguintes ações: <img src="img_doc/image007.png" alt="Salvar uma captura da visualização atual da imagem" style="width: 4%; display: inline;"> Salvar uma captura da visualização atual da imagem; <img src="img_doc/image008.png" alt="Coletar informações da imagem" style="width: 4%; display: inline;"> Coletar informações da imagem; <img src="img_doc/image009.png" alt="Percorrer a imagem movendo-se com o cursor" style="width: 4%; display: inline;"> Percorrer a imagem movendo-se com o cursor; <img src="img_doc/image010.png" alt="Aumentar o Zoom" style="width: 4%; display: inline;"> Aumentar o Zoom; <img src="img_doc/image011.png" alt="Diminuir o Zoom" style="width: 4%; display: inline;"> Diminuir o Zoom; <img src="img_doc/image012.png" alt="Restaurar a visualização" style="width: 4%; display: inline;"> Restaurar a visualização.</p>
<p>Para utilizar uma dessas opções, basta clicar no ícone correspondente, que mudará de cor para azul, e aplicar o recurso desejado à
imagem.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="processar">Processar Segmentação</h2>
<p>1. Após carregar a imagem, clique no botão ‘Processar Segmentação’.</p>
<p>2. A segmentação será processada e os resultados serão exibidos na aba IMAGEM.</p>
<p>3. A sobreposição da imagem original com os resultados da segmentação será mostrada.</p>
<img src="img_doc/image014.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 4 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Espécies’.</p>
<p>Neste momento, é importante aguardar até que o processamento termine. Se a imagem for muito grande, ela será dividida em
blocos de 2048<i>x</i>2048 <i>pixels</i>, e essa informação será exibida em uma pequena janela de progresso (Figura 5).</p>
<img src="img_doc/image016.png" alt="Janela de processamento em bloco" style="width: 95%;">
<p class="center">Figura 5 – Janela de processamento em bloco.</p>
<p>Após o processamento, uma janela de progresso (Figura 6) aparecerá enquanto o resultado é aplicado na aba "IMAGEM".</p>
<img src="img_doc/image018.png" alt="Janela de progresso" style="width: 95%;">
<p class="center">Figura 6 – Janela de progresso.</p>
<p>O resultado inicial apresentará uma segmentação simples, sem distinção entre as espécies de palmeiras, classificando a
imagem em apenas três classes: 1) Palmeiras; 2) Floresta sem Palmeiras (<i>background</i>); 3) Sem dados (no-data).</p>
<img src="img_doc/image020.png" alt="Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 7 – Demonstração do resultado de um processamento com o tipo de segmentação ‘Simples’.</p>
<p>Após a conclusão do processamento e a exibição do resultado, a caixa de opções "Tipo de Segmentação" ficará habilitada.
Isso permitirá que o usuário alterne entre a segmentação simples e a segmentação por espécies, aplicando o novo resultado
imediatamente na aba "IMAGEM".</p>
<p class="important"><strong>IMPORTANTE:</strong> Embora a aplicação tenha uma rotina interna de limpeza de memória para permitir processamentos
repetidos, recomendamos fortemente que, para cada nova imagem a ser processada, a aplicação seja fechada e reaberta. Isso
garante a liberação completa da memória utilizada no processamento anterior, evitando possíveis erros futuros e assegurando
um desempenho otimizado.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="histograma">Gerar Histograma</h2>
<p>1. Com a segmentação processada, clique no botão ‘Histograma’.</p>
<p>2. O histograma da distribuição das espécies será exibido na aba HISTOGRAMA.</p>
<img src="img_doc/image022.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Espécies’" style="width: 95%;">
<p class="center">Figura 8 – Demonstração de um histograma com o tipo de segmentação ‘Espécies’.</p>
<p>A função do histograma só estará disponível após o término do processamento. O histograma é apresentado na aba "HISTOGRAMA"
assim que o processamento é concluído. Uma janela de progresso indicará o fim do processamento e a aplicação mudará
automaticamente o foco para a aba "HISTOGRAMA".</p>
<img src="img_doc/image024.png" alt="Demonstração de um histograma com o tipo de segmentação ‘Simples’" style="width: 95%;">
<p class="center">Figura 9 – Demonstração de um histograma com o tipo de segmentação ‘Simples’.</p>
<p>Para alterar o histograma, utilize as opções de ‘Tipo de Segmentação’ na parte inferior esquerda da aplicação. O histograma
é configurado como um gráfico de barras, onde o eixo X representa as classes e o eixo Y indica o número de pixels
classificados. O usuário pode obter informações detalhadas sobre a frequência absoluta de pixels posicionando o mouse
sobre o gráfico.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="exportar">Exportar Segmentação</h2>
<p>1. Para exportar os resultados da segmentação, clique no botão ‘Exportar Segmentação’.</p>
<p>2. Os resultados serão salvos no diretório <b>‘export</b>’ no formato GeoTIFF.</p>
<p>Durante o processamento, uma janela de progresso aparecerá enquanto a exportação está sendo realizada. Ao término da
exportação, um alerta indicará o sucesso da operação (Figura 10).</p>
<img src="img_doc/image026.png" alt="Alerta do fim de exportação" style="width: 95%;">
<p class="center">Figura 10 – Alerta do fim de exportação.</p>
<p class="important"><strong>IMPORTANTE:</strong> O arquivo exportado será salvo no diretório denominado ‘<strong>export</strong>’, localizado no
mesmo local da instalação da aplicação. O nome do arquivo será o <strong>mesmo nome do arquivo fornecido como
entrada</strong> acrescentado de um sufixo ‘<strong>_Simples</strong>’ e/ou ‘<strong>_Especies</strong>’
seguido da extensão ‘<strong>TIF</strong>’. O resultado da exportação dependerá da seleção na caixa de opções "Tipo de
Segmentação".</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="resolucao-problemas">Resolução de Problemas</h2>
<p>Aqui estão algumas soluções para problemas comuns que você pode encontrar:</p>
<ul>
<li><strong>Erro na instalação:</strong> Verifique se todas as dependências estão instaladas e se a versão do MATLAB é compatível.</li>
<li><strong>Aplicação não inicia:</strong> Certifique-se de que o MATLAB está corretamente configurado no PATH do sistema.</li>
<li><strong>Imagem não carrega:</strong> Verifique o formato da imagem e se ela atende aos requisitos de tamanho.</li>
<li><strong>Processamento lento:</strong> Considere utilizar um computador com melhor capacidade de hardware ou dividir a imagem em partes menores.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="faq">Perguntas Frequentes (FAQ)</h2>
<p>Aqui estão algumas perguntas frequentes sobre a aplicação:</p>
<ul>
<li><strong>Posso usar imagens em formatos diferentes de TIF?</strong> Atualmente, a aplicação só suporta o formato TIF.</li>
<li><strong>Como faço para atualizar a aplicação?</strong> Verifique a seção de atualizações e manutenção para obter instruções.</li>
<li><strong>O que devo fazer se a aplicação travar?</strong> Reinicie a aplicação e tente novamente. Se o problema persistir, consulte a seção de resolução de problemas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="atualizacoes">Atualizações e Manutenção</h2>
<p>Para atualizar a aplicação, siga os passos abaixo:</p>
<ul>
<li>Verifique o site oficial para novas versões.</li>
<li>Baixe a nova versão e substitua os arquivos antigos.</li>
<li>Reinstale as dependências, se necessário.</li>
</ul>
<p>Para manutenção preventiva:</p>
<ul>
<li>Verifique regularmente por atualizações.</li>
<li>Faça backups periódicos dos seus dados.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="seguranca-backup">Segurança e Backup</h2>
<p>Para garantir a segurança dos seus dados:</p>
<ul>
<li>Mantenha o software e dependências atualizados.</li>
<li>Faça backups regulares dos resultados da segmentação.</li>
<li>Armazene os backups em locais seguros e redundantes.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="glossario">Glossário</h2>
<p>Aqui estão alguns termos técnicos utilizados nesta documentação:</p>
<ul>
<li><strong>VANT:</strong> Veículo Aéreo Não Tripulado, também conhecido como drone.</li>
<li><strong>GeoTIFF:</strong> Formato de arquivo raster georreferenciado.</li>
<li><strong>Segmentação:</strong> Processo de dividir uma imagem em partes significativas.</li>
</ul>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h2 id="copyright">Copyright e Contato do Suporte</h2>
<h3 id="copyright">Copyright</h3>
<p>Todos os direitos autorais da aplicação são reservados ao(s) autor(es) e à Universidade do Estado de Santa Catarina
(UDESC-FAED). Qualquer redistribuição ou reprodução de parte ou de todo o conteúdo da aplicação em qualquer formato é
proibida, exceto nas seguintes condições:</p>
<p>1. <b>Uso Pessoal e Acadêmico</b>: A aplicação pode ser usada para fins pessoais e de pesquisa acadêmica, desde que seja
citada adequadamente a fonte e o(s) autor(es) originais da aplicação.</p>
<p>2. <strong>Proibição de Uso Comercial</strong>: É expressamente proibido o uso da aplicação para fins comerciais sem a
permissão explícita do(s) autor(es) e da UDESC-FAED.</p>
<p>3. <strong>Distribuição Limitada</strong>: A aplicação pode ser compartilhada com colegas de pesquisa, desde que este termo
de copyright e licença seja incluído na redistribuição e que não seja alterado ou removido.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="licenca">Licença de Uso</h3>
<p>Esta aplicação foi desenvolvida utilizando o Matlab Compiler sob a Licença da Universidade do Estado de Santa Catarina –
Faculdade de Educação (UDESC-FAED). A licença de uso está descrita da seguinte forma:</p>
<p>1. <b>Uso Restrito à Pesquisa</b>: A aplicação deve ser utilizada exclusivamente para fins de pesquisa e desenvolvimento
acadêmico, conforme os objetivos estabelecidos na pesquisa de doutorado.</p>
<p>2. <strong>Reprodução e Modificação</strong>: A modificação da aplicação é permitida apenas para fins de adaptação às
necessidades específicas da pesquisa de doutorado, desde que as modificações não violem os termos de uso do Matlab
Compiler.</p>
<p>3. <strong>Distribuição de Modificações</strong>: Quaisquer modificações na aplicação devem ser compartilhadas sob a mesma
licença, garantindo que as alterações sejam acessíveis à comunidade acadêmica e respeitem os direitos autorais originais.</p>
<p>4. <strong>Limitações de Responsabilidade</strong>: A UDESC-FAED e o(s) autor(es) não se responsabilizam por quaisquer
danos diretos ou indiretos que possam resultar do uso da aplicação, incluindo, mas não se limitando a, perda de dados,
interrupção de negócios ou lucros cessantes.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="consideracoes">Considerações Finais</h3>
<p>Ao utilizar esta aplicação, você concorda com os termos e condições aqui estabelecidos. O não cumprimento de qualquer parte
deste acordo pode resultar em ações legais apropriadas, de acordo com as leis de direitos autorais aplicáveis.</p>
<p>Para mais informações ou para obter permissão para usos além dos especificados nesta licença, entre em contato com a
Universidade do Estado de Santa Catarina – Faculdade de Educação (UDESC-FAED).</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
<h3 id="autores">Autor(es):</h3>
<p>Airton Gaio Jr.<br>
airton.gaio@edu.udesc.br<br>
</p>
<p>Rodrigo Pinheiro Ribas<br>
rodrigo.ribas@udesc.br
</p>
<p>Julho de 2025.</p>
<p class="center"><a href="#sumario" class="btn-back">Voltar ao Sumário</a></p>
</div>
</body>
</html>
Images: Correct Screen Before Clicking the Link
Images: Application Screen After Clicking the Link appdesigner, matlab, link, html, components, disorganization MATLAB Answers — New Questions
Azure DDoS Protection Tier Comparison
When customers move their apps to the cloud, one of the biggest security and availability challenges they face is distributed denial of service (DDoS) attacks. A denial-of-service attack aims to exhaust the resources of an application, rendering it inaccessible to authorized users. Any endpoint that is accessible to the general public over the internet is a potential target for DDoS assaults.
Azure DDoS Protection offers improved DDoS mitigation features to fight off DDoS attacks when paired with best practices for application architecture.
Azure DDoS Protection offers improved DDoS mitigation features to fight off DDoS attacks when paired with best practices for application architecture.
DDoS Network Protection
When paired with application design best practices, Azure DDoS Network Protection offers improved DDoS mitigation capabilities to fend off DDoS attacks. In a virtual network, it is automatically adjusted to help safeguard your unique Azure resources.
DDoS IP Protection
Pay-per-protected IP is what DDoS IP Protection offers. While DDoS IP Protection and DDoS Network Protection share the same fundamental technical capabilities, DDoS IP Protection will offer additional value-added services such as cost protection, discounts on WAF, and DDoS quick response support.
The features and tiers that go with both Tiers are displayed in the table below.
FeatureDDoS IP ProtectionDDoS Network ProtectionActive traffic monitoring & always on detectionYesYesL3/L4 Automatic attack mitigationYesYesAutomatic attack mitigationYesYesApplication based mitigation policiesYesYesMetrics & alertsYesYesMitigation reportsYesYesMitigation flow logsYesYesMitigation policies tuned to customers applicationYesYesIntegration with Firewall ManagerYesYesMicrosoft Sentinel data connector and workbookYesYesProtection of resources across subscriptions in a tenantYesYesPublic IP Standard tier protectionYesYesPublic IP Basic tier protectionNoYesDDoS rapid response supportNot availableYesCost protectionNot availableYesWAF discountNot availableYesPricePer protected IPPer 100 protected IP addresses
DDoS Network Protection and DDoS IP Protection have the following limitations:
PaaS (multi-tenant), such as Azure App Service Environment for Power Apps and Azure API Management with virtual network integration for deployment modes other than APIMIt is not possible to protect a public IP resource that is connected to a NAT gateway.Virtual machines are not supported in Classic/RDFE setups.A DDoS policy safeguards a virtual network gateway, or VPN gateway. Currently, adaptive tuning is not supported.A public load balancer with a public IP address prefix connected to its frontend can be protected by the Azure DDoS Protection service, but with limited support. DDoS attacks are efficiently detected and mitigated by it. For the protected public IP addresses inside the prefix range, telemetry and logging are not currently available.
While DDoS IP Protection and Network Protection are comparable, DDoS IP Protection has the following extra restriction:
It is not supported to use Public IP Basic tier protection.
When customers move their apps to the cloud, one of the biggest security and availability challenges they face is distributed denial of service (DDoS) attacks. A denial-of-service attack aims to exhaust the resources of an application, rendering it inaccessible to authorized users. Any endpoint that is accessible to the general public over the internet is a potential target for DDoS assaults. Azure DDoS Protection offers improved DDoS mitigation features to fight off DDoS attacks when paired with best practices for application architecture. Azure DDoS Protection offers improved DDoS mitigation features to fight off DDoS attacks when paired with best practices for application architecture. DDoS Network Protection When paired with application design best practices, Azure DDoS Network Protection offers improved DDoS mitigation capabilities to fend off DDoS attacks. In a virtual network, it is automatically adjusted to help safeguard your unique Azure resources. DDoS IP Protection Pay-per-protected IP is what DDoS IP Protection offers. While DDoS IP Protection and DDoS Network Protection share the same fundamental technical capabilities, DDoS IP Protection will offer additional value-added services such as cost protection, discounts on WAF, and DDoS quick response support. The features and tiers that go with both Tiers are displayed in the table below. FeatureDDoS IP ProtectionDDoS Network ProtectionActive traffic monitoring & always on detectionYesYesL3/L4 Automatic attack mitigationYesYesAutomatic attack mitigationYesYesApplication based mitigation policiesYesYesMetrics & alertsYesYesMitigation reportsYesYesMitigation flow logsYesYesMitigation policies tuned to customers applicationYesYesIntegration with Firewall ManagerYesYesMicrosoft Sentinel data connector and workbookYesYesProtection of resources across subscriptions in a tenantYesYesPublic IP Standard tier protectionYesYesPublic IP Basic tier protectionNoYesDDoS rapid response supportNot availableYesCost protectionNot availableYesWAF discountNot availableYesPricePer protected IPPer 100 protected IP addresses DDoS Network Protection and DDoS IP Protection have the following limitations: PaaS (multi-tenant), such as Azure App Service Environment for Power Apps and Azure API Management with virtual network integration for deployment modes other than APIMIt is not possible to protect a public IP resource that is connected to a NAT gateway.Virtual machines are not supported in Classic/RDFE setups.A DDoS policy safeguards a virtual network gateway, or VPN gateway. Currently, adaptive tuning is not supported.A public load balancer with a public IP address prefix connected to its frontend can be protected by the Azure DDoS Protection service, but with limited support. DDoS attacks are efficiently detected and mitigated by it. For the protected public IP addresses inside the prefix range, telemetry and logging are not currently available.While DDoS IP Protection and Network Protection are comparable, DDoS IP Protection has the following extra restriction: It is not supported to use Public IP Basic tier protection. Read More
How to format cell font size, font color, and alignment in Excel from Matlab GUI program
Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference);Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference); Dear Matlab users,
I wrote these lines to export some data from my Matlab GUI to an Excel sheet. But, I need to do the following:
control the font size and color.
control the cell alignment.
I’ve read a lot of generous explanations that discuss a lot of issues, but could not find an answer to what I simply need.
Here is the code. Would you tell me what to add and where exactly?
header={‘Radar Set’, ‘Antenna Height’ ‘Tilting Angle’, ‘Target Type’, ‘Long’, ‘Lat’, ‘Elevation’, ‘Max. Range’, ‘Area’, ‘Date’, ‘Time’};
xlswrite(‘SavedData.xlsx’,header);
Data = {radar_set, get(handles.ant_height, ‘String’), get(handles.tilt_ang, ‘String’), target, get(handles.long,’string’), get(handles.lat,’string’), get(handles.alt,’string’), get(handles.maxrange,’string’), get(handles.area,’string’), datestr(clock, ‘dd/mm/YYYY’), datestr(clock, ‘HH:MM:SS’)};
[number, strings, row] = xlsread(‘SavedData.xlsx’);
lastRow = size(row,1);
nextRow = lastRow+1;
cellReference = sprintf(‘A%d’, nextRow);
xlswrite(‘SavedData.xlsx’, Data, ‘Sheet1’, cellReference); gui, excel, xlswrite, cell format, activex MATLAB Answers — New Questions
Is It Okay to Add Semicolons After Every Expression?
Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way?Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way? Take, for example, this piece of code which adds semicolons even when there is no output to suppress:
clear;
clc;
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*");
hold on;
for idx = 2:10
plot(idx,y(idx),"r*");
end
plot(x,y);
And this code which only includes semicolons when needed:
clear
clc
x = 1:10;
y = (x+1).^2;
plot(1,y(1),"r*")
hold on
for idx = 2:10
plot(idx,y(idx),"r*")
end
plot(x,y)
(These are just examples.) Is adding semicolons to every expression (the first example) wrong in any way?
It’s just that when not using the editor you are not told if there is output to suppress, so I thought it would just be easier to use semicolons everywhere instead of trying to remember or guess where they are needed. So is it syntactically/traditionally/etc wrong in any way? syntax, semicolons, text file MATLAB Answers — New Questions
combine data
I wish to combine rows of data linking unique email addresses to all the row/seat numbers associated with that address. (Note: I separately combined the row and seat columns with a formula, but I am not including that column to simplify the task I need help with.)
I have attached a file with an example of the starting table and the table with the result I want.
Thanks for any help.
Randy
I wish to combine rows of data linking unique email addresses to all the row/seat numbers associated with that address. (Note: I separately combined the row and seat columns with a formula, but I am not including that column to simplify the task I need help with.) I have attached a file with an example of the starting table and the table with the result I want. Thanks for any help.Randy Read More