Introdução

O Material Design é uma nova filosofia de design apresentada pela Google  na  google IO 2014. Trouxe muitos funcionalidades como Material Theme, Sombras personalizadas, Vector Drawables e animações personalizadas. deixando o layout do seu aplicativo moderno e ágil. Se você ainda não possui o Android Studio em sua máquina saiba como instalar aqui. Neste tutorial cobriremos a configuração do tema com material design e adicionaremos um navigation drawer utilizando o RecyclerView.




POKÉMON GO é a nova febre mundial, no mundo todo as pessoas saem nas ruas para rodar em círculos atras de bichos que não existem capturar Pokémons, e se você está aqui é porque você também é um viciado treinador Pokémon! Hoje você vai aprender um truque simples pra aumentar as suas possibilidades de conseguir um POKEMON LENDÁRIO! se você tiver a sorte de achar alguma coisa alem de Zubat e Ratata.

Para continuar nossos tutoriais em PHP e HTML, listamos as principais Tags do HTML que iremos utilizar frequentemente nos próximos tutoriais.

Já ouviu falar de Esteganografia? não? Esteganografia é o estudo de um conjunto de técnicas que ocultam uma mensagem dentro de outra mensagem, podemos usar essas técnicas para esconder uma frase em um texto, esconder imagens,frases em videos e etc... porem hoje irei mostrar como esconder um arquivo ou arquivos em uma imagem com poucos comandos, para isso usaremos um programa chamado Steghide, verdadeiramente digno de um agente secreto.

Nos últimos tutoriais vimos como trabalhar com imagens e com captura de imagens vindas da webcam, hoje cobriremos a reprodução de vídeos. 
Para reproduzir videos usaremos o objeto VideoCapture o mesmo utilizado para exibir os frames vindos da camera. Observe o exemplo abaixo e logo após veremos o que está acontecendo:


main.cpp

// Bibliotecas necessarias do opencv
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace std;
using namespace cv;
int main(int argc, const char** argv)
{
VideoCapture cap; //endereço do video
cap.open("suicidesquad.mp4");
//criacao da janela
namedWindow("Video", 1);
//reproduzindo o video
for(;;)
{
Mat frame;
cap >> frame; //pega um novo frame do video //exibe o frame
imshow("Video", frame);
if(waitKey(30) >= 0) break;
}
// Libera o espaço alocado pelo VideoCapture
cap.release();

return 0;
}


Entendendo o Código

A primeira coisa que precisamos fazer é incluir as bibliotecas necessárias para o projeto, utilizamos a biblioteca gráfica para trabalhar com janelas highgui e incluimos a biblioteca padrão do opencv core:

//Bibliotecas do opencv #include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"

Logo após criarmos o objeto, precisamos indicar qual é o caminho do video que desejamos reproduzir, para isso utilizamos o método open("caminho do video") , caso deseje verificar se foi possivel encontrar ou abrir o arquivo informado poderia utilizar cap.isOpened(), que retorna true ou false. 

VideoCapture cap; cap.open("suicidesquad.mp4");
O proximo passo é exibir os frames vindos do video, para isso, criamos uma janela com a função namedWindow, e a partir do nosso loop infinito, recebemos cada frame do video com o operador >>, por fim exibimos o frame com a função imshow. Com a função waitKey(30),  aguardamos 30 milisegundos para verificar se o usuário deseja encerrar a aplicação apertando qualquer tecla.

//criacao da janela namedWindow("Video", 1);
//reproduzindo o video
for(;;)
{
Mat frame;
cap >> frame; //pega um novo frame do video //exibe o frame
imshow("Video", frame);
if(waitKey(30) >= 0) break;
}
// Libera o espaço alocado pelo VideoCapture
cap.release();

return 0;

Agora precisamos criar um arquivo cmake e indicar nossas dependências para compilarmos nosso programa. Crie um arquivo chamado CMakeLists.txt, em seguida adicione o seguinte código:

cmake_minimum_required (VERSION 2.6) cmake_policy(SET CMP0012 NEW)
PROJECT(read_video)
# Requires OpenCV
FIND_PACKAGE( OpenCV REQUIRED )
MESSAGE("OpenCV version : ${OpenCV_VERSION}")
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
ADD_EXECUTABLE( read_video main.cpp )
TARGET_LINK_LIBRARIES( read_video ${OpenCV_LIBS} )

Compilando e Rodando

  1. Crie uma pasta chamada read_video em opencv-3.0.0/apps.
  2. Copie os arquivos main.cppCMakeLists.txt que criamos acima para a pasta read_video junto com o video que deseja exibir.
  3. Com a pasta read_video aberta no terminal digite cmake . e logo após make para gerar nosso executável.
  4. Por último digite ./read_video  

Voce verá uma janela que exibirá o video escolhido em RGB, como o exemplo a seguir: 




Baseado em: OpenCv By Example
Código fonte: read_video

Até a próxima!





Hoje falaremos de algo simples, porém essencial para páginas Web, que são as transições entre páginas.


É normal o computador travar quando um programa que necessita de muito processamento é aberto. Mas para resolver isso podemos pelo terminal utilizar comandos para matar o processo, liberando mais espaço e capacidade de processamento ao computador.